首页 > 代码库 > 【QT】C++ GUI Qt4 学习笔记1
【QT】C++ GUI Qt4 学习笔记1
Find对话框实现 平台 Qt5.3.2 MinGW4.8.2
注意创建时用QDialog
finddialog.h
#ifndef FINDDIALOG_H#define FINDDIALOG_H#include <QDialog>#include <QLabel>#include <QCheckBox>#include <QLineEdit>#include <QPushButton>#include <QLayout>class FindDialog : public QDialog{ Q_OBJECTpublic: FindDialog(QWidget * parent = 0);signals: void findNext(const QString &str, Qt::CaseSensitivity cs); void findPrevious(const QString &str, Qt::CaseSensitivity cs);private slots: void findClicked(); void enableFindButton(const QString &text);private: QLabel * label; QLineEdit * lineEdit; QCheckBox * caseCheckBox; QCheckBox * backwardCheckBox; QPushButton * findButton; QPushButton * closeButton;};#endif // FINDDIALOG_H
finddialog.cpp
#include <QtGui>#include "finddialog.h"FindDialog::FindDialog(QWidget *parent):QDialog(parent){ label = new QLabel(tr("Find &what:")); lineEdit = new QLineEdit; label->setBuddy(lineEdit); caseCheckBox = new QCheckBox(tr("Match &case")); backwardCheckBox = new QCheckBox(tr("Search &backward")); findButton = new QPushButton(tr("&Find")); findButton->setDefault(true); findButton->setEnabled(false); closeButton = new QPushButton(tr("Close")); connect(lineEdit, 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(label); topLeftLayout->addWidget(lineEdit); QVBoxLayout * leftLayout = new QVBoxLayout; leftLayout->addLayout(topLeftLayout); leftLayout->addWidget(caseCheckBox); leftLayout->addWidget(backwardCheckBox); QVBoxLayout * rightLayout = new QVBoxLayout; rightLayout->addWidget(findButton); rightLayout->addWidget(closeButton); rightLayout->addStretch(); QHBoxLayout * mainLayout = new QHBoxLayout; mainLayout->addLayout(leftLayout); mainLayout->addLayout(rightLayout); setLayout(mainLayout); setWindowTitle(tr("Find")); setFixedHeight(sizeHint().height());}void FindDialog::findClicked(){ QString text = lineEdit->text(); Qt::CaseSensitivity cs = caseCheckBox->isChecked()?Qt::CaseSensitive :Qt::CaseInsensitive; if(backwardCheckBox->isChecked()) { emit findPrevious(text, cs); } else { emit findNext(text, cs); }}void FindDialog::enableFindButton(const QString &text){ findButton->setEnabled(!text.isEmpty());}
mian.cpp
#include "finddialog.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); FindDialog *dialog = new FindDialog; dialog->show(); return a.exec();}
【QT】C++ GUI Qt4 学习笔记1
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。