1. 主要介绍了QGridLayout, QHBoxLayout, QVBoxLayout3种布局管理器的使用方法。

2. 在linux中,继承自QDialog的对话框,没有最大化、最小化、关闭按钮,如果需要这3个按钮,

需要增加:  setWindowFlags(Qt::Widget);

在windows中,即使不加:setWindowFlags(Qt::Widget); 也会有最大化、最小化、关闭按钮。

3. findfiledialog.h

 1 /**/
 2 #ifndef FINDFILEDIALOG_H
 3 #define FINDFILEDIALOG_H
 4
 5 #include <QDialog>
 6
 7 class QLabel;
 8 class QLineEdit;
 9 class QPushButton;
10 class QCheckBox;
11 class QTableWidget;
12 class QHBoxLayout;
13 class QVBoxLayout;
14 class QGridLayout;
15
16 class FindFileDialog : public QDialog
17 {
18     Q_OBJECT
19
20 public:
21     FindFileDialog(QWidget *parent = 0);
22
23 private:
24     QLabel *namedLabel;
25     QLabel *lookInLabel;
26     QLineEdit *namedLineEdit;
27     QLineEdit *lookInLineEdit;
28     QCheckBox *subfoldersCheckBox;
29     QTableWidget *tableWidget;
30     QLabel *messageLabel;
31
32     QPushButton *findButton;
33     QPushButton *stopButton;
34     QPushButton *closeButton;
35     QPushButton *helpButton;
36
37     QGridLayout *leftLayout;
38     QVBoxLayout *rightLayout;
39     QHBoxLayout *mainLayout;
40 };
41
42
43 #endif

4. findfiledialog.cpp

 1 /**/
 2 #include "findfiledialog.h"
 3
 4 #include <QLabel>
 5 #include <QLineEdit>
 6 #include <QPushButton>
 7 #include <QCheckBox>
 8 #include <QTableWidget>
 9 #include <QHBoxLayout>
10 #include <QVBoxLayout>
11 #include <QGridLayout>
12
13 FindFileDialog::FindFileDialog(QWidget *parent)
14     : QDialog(parent)
15 {
16     namedLabel = new QLabel(tr("&Named:"));
17     namedLineEdit = new QLineEdit;
18     namedLabel->setBuddy(namedLineEdit);
19
20     lookInLabel = new QLabel(tr("&Look in:"));
21     lookInLineEdit = new QLineEdit;
22     lookInLabel->setBuddy(lookInLineEdit);
23
24     subfoldersCheckBox = new QCheckBox(tr("Include subfolders"));
25
26     QStringList labels;
27     labels << tr("Name") << tr("In Folder")
28            << tr("Size") << tr("Modified");
29
30     tableWidget = new QTableWidget;
31     tableWidget->setColumnCount(4);
32     tableWidget->setHorizontalHeaderLabels(labels);
33
34     messageLabel = new QLabel(tr("0 files found"));
35     messageLabel->setFrameShape(QFrame::Panel);
36     messageLabel->setFrameShadow(QFrame::Sunken);
37
38     /*  QGridLayout
39     void    addWidget(QWidget * widget,
40                       int fromRow,int fromColumn,
41                       int rowSpan,int columnSpan,
42                       Qt::Alignment alignment = 0)
43     */
44     leftLayout = new QGridLayout;
45     leftLayout->addWidget(namedLabel, 0, 0);
46     leftLayout->addWidget(namedLineEdit, 0, 1);
47     leftLayout->addWidget(lookInLabel, 1, 0);
48     leftLayout->addWidget(lookInLineEdit, 1, 1);
49     /*subfoldersCheckBox的位置坐标(2, 0),占1行,占2列*/
50     leftLayout->addWidget(subfoldersCheckBox, 2, 0, 1, 2);
51     leftLayout->addWidget(tableWidget, 3, 0, 1, 2);
52     leftLayout->addWidget(messageLabel, 4, 0, 1, 2);
53
54
55     findButton = new QPushButton(tr("&Find"));
56     stopButton = new QPushButton(tr("&Stop"));
57     closeButton = new QPushButton(tr("&Close"));
58     helpButton = new QPushButton(tr("&Help"));
59
60     connect(closeButton, SIGNAL(clicked()), this, SLOT(close()));
61
62     rightLayout = new QVBoxLayout;
63     rightLayout->addWidget(findButton);
64     rightLayout->addWidget(stopButton);
65     rightLayout->addWidget(closeButton);
66     rightLayout->addStretch();
67     rightLayout->addWidget(helpButton);
68
69     mainLayout = new QHBoxLayout;
70     mainLayout->addLayout(leftLayout);
71     mainLayout->addLayout(rightLayout);
72
73     setLayout(mainLayout);
74     setWindowTitle(tr("Find Files or Folders"));
75     /*在linux中,继承自QDialog的对话框没有最大化最小化和关闭按钮*/
76     setWindowFlags(Qt::Widget);     /*在linux中让对话框有最大最小和关闭按钮*/
77 }

5. main.cpp

 1 /**/
 2 #include <QApplication>
 3 #include "findfiledialog.h"
 4
 5 int main(int argc, char *argv[])
 6 {
 7     QApplication app(argc, argv);
 8
 9     FindFileDialog dialog;
10     dialog.show();
11
12     return app.exec();
13 }

6. 不带关闭按钮:

带关闭按钮:

转载于:https://www.cnblogs.com/seifguo/p/7368062.html

C++ GUI Qt4编程(12)-6.1FindFileDialog相关推荐

  1. 学习《GUI Qt4 编程》笔记-02-代码实现控件布局-设计师控件布局

      对话框,之所以被成为对话框,是因为它们为用户和应用程序之间提供了一种可以相互"交谈"的交互方式.   绝大多数的图形用户界面应用程序都带有一个有菜单栏.工具栏构成的主窗口以及几 ...

  2. C++ Gui Qt4 书籍代码在VS2008上正确编译使用

    实际用VS2008上的QT菜单可以直接打开以前Qmake编译的.pro项目文件.无需下面的步骤. 继续摸索中,貌似由qmake转换成add_in模式,智能提示有点问题,.... =========== ...

  3. 《精通Qt4编程(第2版)》

    <精通Qt4编程>第2版,china-pub计算机新书推荐 推荐语: 畅销书升级版 诸多大型项目工程开发经验的凝聚之作 基本信息作者: 蔡志明    卢传富    李立夏    出版社:电 ...

  4. python中的gui界面编程_python应用系列教程——python的GUI界面编程Tkinter全解

    全栈工程师开发手册 (作者:栾鹏) python的GUI界面编程,常用的几个python库包含如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包 ...

  5. Python Qt GUI快速编程第六章代码分析

    这是我敲的Python Qt Gui快速编程第六章上的代码,以后可能要用到其中一些,如果忘记了就来这里看看. #coding=utf-8 #d import os import platform im ...

  6. python应用系列教程——python的GUI界面编程Tkinter全解

    全栈工程师开发手册 (作者:栾鹏) python教程全解 python的GUI界面编程,常用的几个python库包含如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 ...

  7. 【JAVA小游戏+水果售卖系统】基于GUI界面编程的水果“人生”模拟系统

    [JAVA]基于GUI界面编程的水果"人生"模拟系统 一.系统主要功能及简介 二.系统体系结构 三.系统设计技术 四.编码说明 五.效果展示 一.系统主要功能及简介 该系统以JAV ...

  8. python cgi库_《Python 数据库 GUI CGI编程》

    1. 上次写在前面,我们介绍了一篇关于开始使用Python.今天我们将介绍Python数据库,GUI, CGI编程和Python和Python的区别.2.连接到数据库标准Python数据库接口是Pyt ...

  9. python界面编程pdf_Python Qt GUI快速编程——PyQt编程指南 中文pdf完整版[99MB]

    内容介绍热点排行相关文章下载地址↓ Python Qt GUI快速编程--PyQt编程指南主要讲述如何利用Python和Qt开发GUI应用程序的原理.方法和关键技术.本书共分四个部分:第一部分主要讲述 ...

最新文章

  1. 网站Web服务器测试及优化参考
  2. git pull 默认拉取远端其他分支 问题解决
  3. 马库斯开喷GPT-3:演员而已,它根本不知道自己在说什么
  4. x_html语言名词解释,第2章++XHTML标记语言(97页)-原创力文档
  5. jQuery的单引号双引号
  6. mysql图片路径varchar大小_Mysqlvarchar大小长度问题_MySQL
  7. python实战===如何优雅的打飞机
  8. 【Python位运算】——左移操作(<<)右移操作>>
  9. 让安全威胁无所遁形,全方位掌握攻击“前世今生”的黑科技来了
  10. 广东工业大学计算机学院微信群,谢光强
  11. java https post get请求_JAVA利用HttpClient进行POST和GET请求(HTTPS)
  12. C语言实现可变参数列表的system接口:宏__VA_ARGS__
  13. 中国篮球--路在何方!
  14. jQuery中文文档
  15. GDI与DirectX对比
  16. openstack配额
  17. 翻译-你必须知道的28个HTML5特征、窍门和技术
  18. OpenAI的API key获取方法
  19. 2021计算机学校分数,泰州市博日电脑技术学校2021年招生录取分数线
  20. 高端光刻机为什么那么难制造?

热门文章

  1. Monkey测试简介
  2. 手动安装huson插件的做法
  3. heartbeat自带的断网切换功能-ipfail
  4. POJ 3164 Command Network (最小树形图)
  5. WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色
  6. fastreport 中 给数值形数据做 格式 保留小数位数以0补足
  7. Prism安装、MVVM基础概念及一个简单的样例
  8. discrete mathematics important questions
  9. 学生开始学术生涯的好方法
  10. google 用新的tab打开网页