C++ GUI Qt4编程(12)-6.1FindFileDialog
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相关推荐
- 学习《GUI Qt4 编程》笔记-02-代码实现控件布局-设计师控件布局
对话框,之所以被成为对话框,是因为它们为用户和应用程序之间提供了一种可以相互"交谈"的交互方式. 绝大多数的图形用户界面应用程序都带有一个有菜单栏.工具栏构成的主窗口以及几 ...
- C++ Gui Qt4 书籍代码在VS2008上正确编译使用
实际用VS2008上的QT菜单可以直接打开以前Qmake编译的.pro项目文件.无需下面的步骤. 继续摸索中,貌似由qmake转换成add_in模式,智能提示有点问题,.... =========== ...
- 《精通Qt4编程(第2版)》
<精通Qt4编程>第2版,china-pub计算机新书推荐 推荐语: 畅销书升级版 诸多大型项目工程开发经验的凝聚之作 基本信息作者: 蔡志明 卢传富 李立夏 出版社:电 ...
- python中的gui界面编程_python应用系列教程——python的GUI界面编程Tkinter全解
全栈工程师开发手册 (作者:栾鹏) python的GUI界面编程,常用的几个python库包含如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包 ...
- Python Qt GUI快速编程第六章代码分析
这是我敲的Python Qt Gui快速编程第六章上的代码,以后可能要用到其中一些,如果忘记了就来这里看看. #coding=utf-8 #d import os import platform im ...
- python应用系列教程——python的GUI界面编程Tkinter全解
全栈工程师开发手册 (作者:栾鹏) python教程全解 python的GUI界面编程,常用的几个python库包含如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 ...
- 【JAVA小游戏+水果售卖系统】基于GUI界面编程的水果“人生”模拟系统
[JAVA]基于GUI界面编程的水果"人生"模拟系统 一.系统主要功能及简介 二.系统体系结构 三.系统设计技术 四.编码说明 五.效果展示 一.系统主要功能及简介 该系统以JAV ...
- python cgi库_《Python 数据库 GUI CGI编程》
1. 上次写在前面,我们介绍了一篇关于开始使用Python.今天我们将介绍Python数据库,GUI, CGI编程和Python和Python的区别.2.连接到数据库标准Python数据库接口是Pyt ...
- python界面编程pdf_Python Qt GUI快速编程——PyQt编程指南 中文pdf完整版[99MB]
内容介绍热点排行相关文章下载地址↓ Python Qt GUI快速编程--PyQt编程指南主要讲述如何利用Python和Qt开发GUI应用程序的原理.方法和关键技术.本书共分四个部分:第一部分主要讲述 ...
最新文章
- 网站Web服务器测试及优化参考
- git pull 默认拉取远端其他分支 问题解决
- 马库斯开喷GPT-3:演员而已,它根本不知道自己在说什么
- x_html语言名词解释,第2章++XHTML标记语言(97页)-原创力文档
- jQuery的单引号双引号
- mysql图片路径varchar大小_Mysqlvarchar大小长度问题_MySQL
- python实战===如何优雅的打飞机
- 【Python位运算】——左移操作(<<)右移操作>>
- 让安全威胁无所遁形,全方位掌握攻击“前世今生”的黑科技来了
- 广东工业大学计算机学院微信群,谢光强
- java https post get请求_JAVA利用HttpClient进行POST和GET请求(HTTPS)
- C语言实现可变参数列表的system接口:宏__VA_ARGS__
- 中国篮球--路在何方!
- jQuery中文文档
- GDI与DirectX对比
- openstack配额
- 翻译-你必须知道的28个HTML5特征、窍门和技术
- OpenAI的API key获取方法
- 2021计算机学校分数,泰州市博日电脑技术学校2021年招生录取分数线
- 高端光刻机为什么那么难制造?