QT的基本知识「建议收藏」

QT的基本知识「建议收藏」QT是一个跨平台应用程序和UI开发框架。具体的安装以及源文件的下载这里不详细介绍。要在QT界面上添加一个按钮,可以有两种方法:一个是直接拖放一个按钮即可;另一种则是通过程序来添加一种按钮。QT提供的信号和槽机制,可以让任意两个对象之间进行消息处理,其作用就是让一个对象产生的信号能够被另一个对象接受并处理。QT基本所有的对象都集成在QObject对象中,在这个对象中有一个静态函数connect…

大家好,又见面了,我是你们的朋友全栈君。

QT是一个跨平台应用程序和UI开发框架。具体的安装以及源文件的下载这里不详细介绍。
要在QT界面上添加一个按钮,可以有两种方法:一个是直接拖放一个按钮即可;另一种则是通过程序来添加一种按钮。

QT提供的信号和槽机制,可以让任意两个对象之间进行消息处理,其作用就是让一个对象产生的信号能够被另一个对象接受并处理。QT基本所有的对象都集成在QObject对象中,在这个对象中有一个静态函数connect(..),
该函数可以让一个对象产生的信号能够被另一个对象接受并处理。
QObject::connect(&button, SIGNAL(clicked()), &w, SLOT(close()));
前面两个参数称为信号,后两个参数称为槽。经过这样的连接后,按钮button的clicked函数和窗口对象w的close()函数就进行了绑定,调用button的clicked()函数就相当于调用了窗口w的close()函数。
好处:可以讲两个独立的模块通过第三方连接起来,降低设计的耦合性。

 标准对话框
所谓标准对话框,是 Qt 内置的一系列对话框,用于简化开发。事实上,有很多对话框都是通用的,比如打开文件、设置颜色、打印设置等。这些对话框在所有程序中几乎相同,因此没有必要在每一个程序中都自己实现这么一个对话框。
Qt 的内置对话框大致分为以下几类:
 QColorDialog:  选择颜色;
 QFileDialog:   选择文件或者目录;
 QFontDialog:   选择字体;
 QInputDialog:  允许用户输入一个值,并将其值返回;
 QMessageBox:   模态对话框,用于显示信息、询问问题等;
 QPageSetupDialog: 为打印机提供纸张相关的选项;
 QPrintDialog:  打印机配置;
 QPrintPreviewDialog:打印预览;
 QProgressDialog:  显示操作过程。

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QProcess>       
#include <QDebug>
#include <QMessageBox>             //下面三个是添加的

namespace Ui {
class Widget;
}

class Widget : public QWidget   //继承
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

private slots:
    void on_commitButton_clicked();
    void cancelButtonSlot();

private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

 widget.cpp

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget)
{
//    this->setMaximumSize(350,150);
//    this->setMinimumSize(350,150);    //指定窗口大小

    ui->setupUi(this);

    connect(ui->cmdLineEdit, SIGNAL(returnPressed()), this, SLOT(on_commitButton_clicked()));  //通过宏实现信号和槽的连接
    connect(ui->cancelButton, &QPushButton::clicked, this, &Widget::cancelButtonSlot);
    connect(ui->browseButton, &QPushButton::clicked,
            [this]()
    {
        qDebug() << "helloworld";
        QMessageBox::warning(this, "按钮提示", "按钮被按下");     //会为这个对话框提供一个黄色叹号图标
    });  //Lamba表达式
}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_commitButton_clicked()
{
    QString processName = ui->cmdLineEdit->text();    //获取文本框数据
    QProcess *myProcess = new QProcess(this);
    myProcess->start(processName);
}

void Widget::cancelButtonSlot()
{
    this->close();
}

main.cpp

#include "widget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();

    return a.exec();
}

主函数一般不变,修改的只是头文件和widget.cpp文件

QT的基本知识「建议收藏」

QT的基本知识「建议收藏」

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/145471.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • flask中jsonify和json区别[通俗易懂]

    flask中jsonify和json区别[通俗易懂]JSON数据结构要把json与字典区分开来dumps(字典转换成Json)loads(Json转换成字典)参考:Python的字典是一种数据结构,JSON是一种数据格式。json就是一个根据某种约定格式编写的纯字符串,不具备任何数据结构的特征。而python的字典的字符串表现形式的规则看上去和json类似,但是字典本身是一个完整的数据结构,实现了一切自身该有的算法。Python的字典key可以是任意可hash对象,json只能是字符串。形式上有些相像,但JSO

  • MybatisCodeHelperPro2.9离线激活码-激活码分享

    (MybatisCodeHelperPro2.9离线激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html1PA3AFINM4-eyJsaWNlbnNlSWQi…

  • 怎么将python代码编译_python怎么编译运行

    怎么将python代码编译_python怎么编译运行有时为了一些机密,不方便公开python源码,所以需要以编译方式进行部署。这里主要介绍以.pyc的方式。1、生成单个文件:(1)python-mxx.py(2)在python编译器中进行:importpy_compilepy_compile.compile(‘路径’)2、批量生成文件:importcompileallcompileall.compile_dir(r’/pat………

    2022年10月26日
  • 编写一个void sort(int*x,int n)实现将x数组中的n个数据从大到小排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件

    编写一个void sort(int*x,int n)实现将x数组中的n个数据从大到小排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件

  • 安防流媒体无插件直播管理设计

    安防流媒体无插件直播管理设计什么是无插件方案?通过简单的网络摄像机通道配置,将传统监控行业里面的高清网络摄像机IPCamera、NVR等具有RTSP协议输出的设备接入到流媒体服务,流媒体服务能够将这些视频源的音视频数据进行拉取,转换为RTMP/HLS,进行全平台终端H5直播(Web、Android、iOS),并且EasyNVR能够将视频源的直播数据对接到第三方CDN网络,实现互联网级别的直播分发;1我的设备1.1….

  • innerHTML和outerHTML有什么区别

    innerHTML和outerHTML有什么区别一、区别:1)innerHTML:  从对象的起始位置到终止位置的全部内容,不包括Html标签。2)outerHTML:  除了包含innerHTML的全部内容外,还包含对象标签本身。二、例子:<divid=”test”><spanstyle=”color:red”>test1</span>…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号