自定义了一个QDialog,并通过信号和槽的机制实现了控件之间的通信,细节见注释
//对话框头文件 #ifndef FUCKQT_H #define FUCKQT_H #include<QDialog> class QCheckBox; class QLabel; class QLineEdit; class QPushButton; class phuckDlg :public QDialog{ //如果需要在对话框类中自定义信号和槽,则需要在类内添加Q_OBJECT Q_OBJECT public: //构造函数,析构函数 phuckDlg(QWidget *parent = NULL); ~phuckDlg(); //在signal和slots中定义这个对话框所需要的信号。 signals: //signals修饰的函数不需要本类实现。他描述了本类对象可以发送那些求助信号 void findNext(const QString& str1, Qt::CaseSensitivity cs); void findPrevious(const QString& str1, Qt::CaseSensitivity cs); //slots必须用private修饰 private slots: void findClicked(); void enableFindButton(const QString& str); //申明这个对话框需要哪些组件 private: QLabel *label1; QLineEdit *edit1; QCheckBox *box1, *box2; QPushButton *findButton, *closeButton; }; #endif // FUCKQT_H
//定义了控件和控件之间的关联,以及控件的位置 #include<QtGui> #include<QLabel> #include<QLineEdit> #include<QCheckBox> #include<QPushButton> #include<QHBoxLayout> #include "fuckqt.h" phuckDlg::phuckDlg(QWidget *parent) : QDialog(parent) { //初始化控件对象 //tr是把当前字符串翻译成为其他语言的标记 //&后面的字母是用快捷键来激活控件的标记,例如可以用Alt+w激活Find &what这个控件 label1 = new QLabel(tr("Find &what:")); edit1 = new QLineEdit; //设置伙伴控件 label1->setBuddy(edit1); box1 = new QCheckBox(tr("Mach &case")); box2 = new QCheckBox(tr("Search &background")); findButton = new QPushButton(tr("&find")); findButton->setDefault(true); findButton->setEnabled(false); closeButton = new QPushButton(tr("close")); //连接信号和槽 connect(edit1, SIGNAL(textChanged(const QString&)), this, SLOT(enableFindButton(const QString&))); connect(findButton, SIGNAL(clicked()), this, SLOT(findClicked())); connect(closeButton, SIGNAL(clicked()), this, SLOT(close())); //设置控件位置 QHBoxLayout *topLeftLayout = new QHBoxLayout; topLeftLayout->addWidget(label1); topLeftLayout->addWidget(edit1); QVBoxLayout *leftLayout = new QVBoxLayout; leftLayout->addLayout(topLeftLayout); leftLayout->addWidget(box1); leftLayout->addWidget(box2); QVBoxLayout *rightLayout = new QVBoxLayout; rightLayout->addWidget(findButton); rightLayout->addWidget(closeButton); rightLayout->addStretch(); QHBoxLayout *mainLayout = new QHBoxLayout; mainLayout->addLayout(leftLayout); mainLayout->addLayout(rightLayout); this->setLayout(mainLayout); setWindowTitle(tr("phuck")); setFixedHeight(sizeHint().height()); } void phuckDlg::findClicked(){ QString text1 = edit1->text(); Qt::CaseSensitivity cs; if (box1->isChecked()){ cs = Qt::CaseSensitive; } else{ cs = Qt::CaseInsensitive; } //判断发送什么信号 if (box2->isChecked()){ emit findPrevious(text1, cs); } else{ emit findNext(text1, cs); } } void phuckDlg::enableFindButton(const QString& str){ findButton->setEnabled(!str.isEmpty()); } phuckDlg::~phuckDlg() { }
//测试这个类 #include "fuckqt.h" #include <QtWidgets/QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); phuckDlg *dialog = new phuckDlg(); dialog->show(); return a.exec(); }
相关推荐
建立模态对话框,用于设置主窗口的表格行数和列数,并用于删除对话框对象,释放内存。 (2)设置表头标题 在对话框编辑表头标题后,主窗口获取编辑之后的表头标题,对话框以模态形式存在。 (3)定位单元格 在...
在Qt中,你可以创建自定义对话框(Custom Dialog)来满足特定需求,这允许你设计一个完全符合应用程序风格的对话框。通常,自定义对话框是通过创建一个继承自`QDialog`的自定义类,并在这个类中定义对话框的外观和...
在一个应用程序设计中,为了实现一些特定的功能,必须设计自定义对话框。自定义对话框的设计一般从QDialog继承,并且可以采用UI设计器可视化地设计对话框。对话框的调用一般包括创建对话框、传递数据给对话框、显示...
在一个应用程序设计中,为了实现一些特定的功能,必须设计自定义对话框。自定义对话框的设计一般从QDialog继承,并且可以采用UI设计器可视化地设计对话框。对话框的调用一般包括创建对话框、传递数据给对话框、显示...
基于通用三方开源的Qt界面库的基础之上,高效、省时的帮你完成个性化界面。用户基于上述开发系统,实现个性化的...对界面的自定义拖动的实现。 本源码基于网络源码升级而成,后续大家有好的建议可以留言或者升级分享!
纯代码编写提示窗,无UI文件。是https://blog.csdn.net/sinat_33419023/article/details/110009514 代码对应的项目文件
QT 自定义提示框 Qt 自定义提示框 类似QMessageBox https://blog.csdn.net/qq_37373742/article/details/127402276?spm=1001.2014.3001.5502 为什么需要设计自定义提示框呢? 1.Qt自带的提示框样式单一; 2.提示框...
Qt无边框界面实现, 支持拖拽移动、四边拖动大小,双击放大等系统边框支持的功能,模态对话框支持抖动效果。
qml 用item自定义dialog 对话框 很好用的一个自定义对话框
利用Qt实现自定义标题栏功能(自定义最大化、最小化、关闭等功能),自定义标题栏,可以自己设计按键的大小,图标,位置,能够和背景更加统一,详细内容可参考文章:...
使用pythonocc为库,以pyqt中的qtdesigner为工具设计一个自定义对话框。 实现了点击 一个点弹出自定义对话框
QT 可复用对话框C++——可自定义标题和内容及按钮文本的标准通用对话框
qt框架下创建模态对话框和非模态对话框综合案列,对实际业务开发有一定的参考价值。
用QT实现的类似QQ的头像选择框,能够在右侧实时显示截取效果,代码很简单就三个类,需要自己新建工程。效果图压缩包内有。有问题欢迎咨询,共同学习进步。
本资源利用Qt实现了按钮的状态变化,鼠标移动到按钮上按钮改变颜色,离开变回原来状态,点击按钮弹出一个对话框
自定义对话框、消息对话框及其他标准对话框 博客地址:https://blog.csdn.net/qq_36926037/article/details/123697304
QTableWidget是QT对话框设计中常用的显示数据表格的控件。 QTableWidget继承于类QTableView,所以在学习QTableWidget之前可以先看一下QTableWidget,他们两者的区别是:QTableView可以使用自定义的数据模型来显示...
QT一个简单的例子 对话框 点击事件 你懂的
Qt基本对话框及实现各个功能的文档。 包括: 1.标准文件对话框 2.标准颜色对话框 3.标准字体对话框 4.标准输入对话框 5.消息对话框类 6.自定义消息对话框类
自定义对话使用帮助,请按帮助信息说明进行使用!