其他分享
首页 > 其他分享> > QT5

QT5

作者:互联网

一.下载安装QT5

 

 

二.QT5开发工具

 

 

三.QT5数据类型

 

 

四.QT5语法

 

 

五.QT5窗口界面框架

在项目Application中:

QT Widgets Application(桌面QT应用)

QT Console Application(控制台QT应用)

QT for Python-Empty / Window(用Python开发QT应用)

QT Quick Application-Empty / Scroll / Stack /Swipe(移动平台开发QT应用)

 

1.QWidget

 

QWidget widget;
widget.setWindowTitle(QObject::tr("k5"));
widget.resize(400, 300);
widget.move(200, 100);
widget.show();

int x = widget.x();
qDebug("x:%d", x);

int y = widget.y();
qDebug("y:%d", y);

 

2.QDialog

(1)窗口框架

 

QDialog类继承与QWidget类

注意:添加hellodialog.ui文件的时候,要把里面的 <class>HelloDialog</class>

                       <widget class = "QDialog" name = "HelloDialog"> 改过来,不然会无法识别 ui 这个指针

 

// hellodialog.h

#ifndef HELLODIALOG_H
#define HELLODIALOG_H

#include <QDialog>

namespace Ui{
    class HelloDialog;
}

class HelloDialog : public QDialog{

    Q_OBJECT
public:
    explicit HelloDialog(QWidget* parent = nullptr);
    ~HelloDialog();

private:
    Ui::HelloDialog* ui;
};


#endif // HELLODIALOG_H

 

// hellodialog.cpp#include "hellodialog.h"
#include "ui_hellodialog.h"


HelloDialog::HelloDialog(QWidget* parent) :
    QDialog(parent),
    ui(new Ui::HelloDialog)
{
    ui->setupUi(this);

}

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

 

// main.cpp

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

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

    return a.exec();
}

 

(2)附加窗口

//模态对话框

QDialog* dialog = new QDialog(this);
dialog->setModal(true);
dialog->show();QDialog dialog;dialog.setModal(true);dialog.show()

 

//非模态对话框

QDialog* dialog = new QDialog(this);
dialog->show();

QDialog dialog;
dialog.show()

 

 (3)对话框状态

QDialog dialog;
if (dialog.exec() == QDialog::Accepted) 

 

 

 

 

六.QT5控件

 

七.QT5绘制

 

八.QT5多线程和多进程

1.多线程

 

QThread是Qt线程中一个公共的抽象类,所有的线程类都是从QThread抽象类中派生的,需要实现QThread中的虚函数run(),通过调用start()函数

 

QThread对多线程的支持:

1.QThreadStorage 提供逐线程数据存储

2.QMutex 互斥锁

3.QMutexLocker 自动互斥锁

4.QReadLocker 和 QWriteLocker 自动读写锁

5.QReadWriteLocker 读写锁

6.QSemphore 互斥信号量

7.QWaiteCondition 等待条件

 

2.多进程

QT通过QProcess类来启动一个程序与其通信

 

QT对多进程的支持:

1.共享内存(shared memory)

2.TCP/IP: C/S程序,网络交互

3.D-Bus:信号槽机制扩展到进程级别

4.QCOP(Qt COmmunication Protocol):QCOP是Qt内部的一种通信协议,只用于 Qt for Embeded Linux版本

 

 

九.QT5网络

 

 

十.QT5文件

 

标签:widget,QT5,QT,QDialog,HelloDialog,dialog
来源: https://www.cnblogs.com/k5bg/p/15587414.html