zoukankan      html  css  js  c++  java
  • Qt5:快速设计对话框 QtDesigner 的使用

    QtDesigner  的使用 比较简单  ,  一般摸索几下就可以使用大部分的功能了

    这里主要介绍其常用的功能

    1、对用户界面进行可视化的搭建 和 布局

    2、设置 tab 键的顺序 

    3、设置信号-槽的关系

    4、自定义槽

    5、设置窗口部件的各种属性

    QtDesigner的主要使用方法就是

    首先  创建一个  QtDesigner 文件,  就是一个  后缀 为 *.ui   的文件

    这种ui文件是基于xml格式的一种文件

    点击这个文件,就自动使用  可视化编辑器打开了

    当用户界面建立完成后  , 保存

    使用  qmake  编译这个文件 , 就会得到一个  以   ui_*.h  的头文件 ,里面包含用户界面的实现代码

    打开  *.pro   工程文件  ,  在 HEADERS +=  这一項中加上  ui_*.h  头文件 ,  然后保存  ,  然后就会发现  ui_*.h  头文件被自动包含到工程里面了

    当要使用搭建好的界面的时候   就要经历以下步骤

      包含  ui_*.h  头文件

      创建一个  window  , 例如  QWidget * window = new QWinget;

      然后创建一个   Ui::XXXX  *   ui = new Ui::XXXX;  (  该类是在ui_*.h  中定义的 )

      然后调用如下语句  ui->setupUi(window) ;  该语句 是将 定义好的 UI 界面应用到刚刚创建的 window 上

        然后就可以show()  了

    实例代码

      

     1 /********************main.cpp*******************************/
     2 #include"gotocelldialog.h"
     3 #include <QApplication>
     4 #include<QDialog>
     5 
     6 int main(int argc, char *argv[])
     7 {
     8     QApplication a(argc, argv);
     9     GotoCellDialog*     dlg = new    GotoCellDialog;
    10     dlg->show();
    11     return a.exec();
    12 }
     1 /*****************************gotocelldialog.h**********************************/
     2 #ifndef GOTOCELLDIALOG_H
     3 #define GOTOCELLDIALOG_H
     4 #include<QDialogButtonBox>
     5 #include<QString>
     6 #include"ui_dialog.h"
     7 
     8 class GotoCellDialog:public QDialog, public Ui::Dialog
     9 {
    10     Q_OBJECT
    11 public:
    12     GotoCellDialog(QWidget*    parent = 0);
    13     ~GotoCellDialog();
    14 private    slots:
    15     void        on_lineEdit_textChanged(const QString & txt);
    16     void        on_okBtn_clicked();
    17     void        on_cancelBtn_clicked();
    18 };
    19 
    20 #endif // GOTOCELLDIALOG_H
     1 /**********************gotocelldialog.cpp*********************************/
     2 #include<QtGui>
     3 #include<QLabel>
     4 #include "gotocelldialog.h"
     5 
     6 GotoCellDialog::GotoCellDialog(QWidget* parent)
     7         : QDialog(parent)
     8 {
     9     this->setupUi(this);
    10     QRegExp    reg("[a-zA-Z][0-9][0-9]{0,2}");
    11     lineEdit->setValidator(new QRegExpValidator(reg,this));
    12 }
    13 
    14 void    GotoCellDialog::on_lineEdit_textChanged(const QString & txt)
    15 {}
    16 
    17 void    GotoCellDialog::on_okBtn_clicked()
    18 {
    19     this->setWindowTitle(lineEdit->text());
    20     okBtn->update();
    21 }
    22 void    GotoCellDialog::on_cancelBtn_clicked()
    23 {
    24     this->close();
    25 }
    26 
    27 GotoCellDialog::~GotoCellDialog()
    28 {}
     1 /***************************gotocelldialog.pro*******************************/
     2 //这是添加了  ui_*.h  的工程文件
     3 
     4 #-------------------------------------------------
     5 #
     6 # Project created by QtCreator 2013-05-31T12:59:16
     7 #
     8 #-------------------------------------------------
     9 
    10 QT       += core gui
    11 
    12 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    13 
    14 TARGET = QtDesigner_Test
    15 TEMPLATE = app
    16 
    17 
    18 SOURCES += main.cpp\
    19         mainwindow.cpp\
    20         gotocelldialog.cpp
    21 
    22 HEADERS  += mainwindow.h\
    23                         ui_dialog.h\
    24                         gotocelldialog.h
    25 
    26 FORMS    += mainwindow.ui \
    27     dialog.ui
  • 相关阅读:
    sessionStorage 、localStorage 和 cookie 之间的区别 及共同点:
    [转]css文件和js文件后面带一个问号
    Asp.net中动态设置标题Title,Keyword,Descripton标签的方法
    【11.7校内测试】【倒计时3天】【不想写题解】
    【洛谷】1600:天天爱跑步【LCA】【开桶】【容斥】【推式子】
    【11.6校内测试】【倒计时4天】【找规律?思维】【二分+倍增】
    【洛谷】3960:列队【Splay】
    CF733F Drivers Dissatisfaction【链剖】【最小生成树应用】
    【11.5校内测试】【倒计时5天】【DP】【二分+贪心check】【推式子化简+线段树】
    【11.2晚校内测试】【装桶模拟】【单调栈】
  • 原文地址:https://www.cnblogs.com/wowk/p/3112788.html
Copyright © 2011-2022 走看看