实例.各种消息框
dialog.h
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
#include <QLabel>
#include <QGridLayout>
namespace Ui {
class Dialog;
}
class Dialog : public QDialog
{
Q_OBJECT
public:
explicit Dialog(QWidget *parent = 0);
~Dialog();
QGridLayout *layout;
QLabel *ab;
QPushButton *question;
QPushButton *information;
QPushButton *warning;
QPushButton *critical;
QPushButton *abort;
QPushButton *aqt;
QPushButton *custom;
QLabel *label;
private:
Ui::Dialog *ui;
private slots:
void slotQuestion();
void slotInformation();
void slotWarning();
void slotCritical();
void slotAbout();
void slotAboutQt();
void slotCustom();
};
#endif // DIALOG_H
dialog.cpp
#include "dialog.h"
#include "ui_dialog.h"
#include <QMessageBox>
#include <QtGui>
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
setWindowTitle(tr("Qing"));
layout = new QGridLayout(this);
ab = new QLabel(tr("qt messagebox"));
question = new QPushButton(tr("question"));
information = new QPushButton(tr("information"));
warning = new QPushButton(tr("warning"));
critical = new QPushButton(tr("critical"));
abort = new QPushButton(tr("abort"));
aqt = new QPushButton(tr("aqt"));
custom = new QPushButton(tr("custom"));
label = new QLabel;
layout->addWidget(ab,1,0);
layout->addWidget(question,2,0);
layout->addWidget(information,2,1);
layout->addWidget(warning,3,0);
layout->addWidget(critical,3,1);
layout->addWidget(abort,4,0);
layout->addWidget(aqt,4,1);
layout->addWidget(custom,5,0);
layout->addWidget(label,6,0);
connect(question, SIGNAL(clicked()), this, SLOT(slotQuestion()));
connect(information, SIGNAL(clicked()), this, SLOT(slotInformation()));
connect(warning, SIGNAL(clicked()), this, SLOT(slotWarning()));
connect(critical, SIGNAL(clicked()), this, SLOT(slotCritical()));
connect(abort, SIGNAL(clicked()), this, SLOT(slotAbout()));
connect(aqt, SIGNAL(clicked()), this, SLOT(slotAboutQt()));
connect(custom, SIGNAL(clicked()), this, SLOT(slotCustom()));
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::slotQuestion()
{
switch(QMessageBox::question(this,"问题",
tr("文档结束,从头搜索?"),
QMessageBox::Ok|QMessageBox::Cancel,QMessageBox::Ok))
{
case QMessageBox::Ok:
label->setText("OK");
break;
case QMessageBox::Cancel:
label->setText("Cancel");
break;
default:
break;
}
return;
}
void Dialog::slotInformation()
{
QMessageBox::information(this, "Information", tr("anything you want tell user"));
return;
}
void Dialog::slotWarning()
{
switch(QMessageBox::warning(this,"Warning",
tr("保存否"),
QMessageBox::Save|QMessageBox::Discard|QMessageBox::Cancel,
QMessageBox::Save))
{
case QMessageBox::Save:
label->setText("save");
break;
case QMessageBox::Discard:
label->setText("Discard");
break;
case QMessageBox::Cancel:
label->setText("Cancel");
break;
default:
break;
}
return;
}
void Dialog::slotCritical()
{
QMessageBox::critical(this,"information",tr("tell usr a critical error"));
label->setText("Critical MessageBox");
return;
}
void Dialog::slotAbout()
{
QMessageBox::about(this,"About",tr("Message box example"));
label->setText("About MessageBox");
return;
}
void Dialog::slotAboutQt()
{
QMessageBox::aboutQt(this,"About Qt");
label->setText("About Qt MessageBox");
return;
}
void Dialog::slotCustom()
{
QMessageBox customMsgBox;
customMsgBox.setWindowTitle("custom message box");
QPushButton *lockButton = customMsgBox.addButton(tr("lock"),QMessageBox::ActionRole);
QPushButton *unlockButton = customMsgBox.addButton(tr("Unlock"),QMessageBox::ActionRole);
QPushButton *cancelButton = customMsgBox.addButton(QMessageBox::Cancel);
customMsgBox.setIconPixmap(QPixmap("G:/UI/images/fish.png"));
customMsgBox.setText("用户自定义类型");
customMsgBox.exec();
if(customMsgBox.clickedButton()==lockButton)
label->setText("Custom MessageBox/lock");
if(customMsgBox.clickedButton()==unlockButton)
label->setText("Custom MessageBox/unlock");
if(customMsgBox.clickedButton()==cancelButton)
label->setText("cancel");
return;
}
main.cpp
#include <QtGui/QApplication>
#include "dialog.h"
#include <QTextCodec>
int main(int argc, char *argv[])
{
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
QApplication a(argc, argv);
Dialog w;
w.show();
return a.exec();
}
实例.QQ
drawer.h
#ifndef DRAWER_H
#define DRAWER_H
#include <QToolBox>
#include <QToolButton>
class Drawer : public QToolBox
{
Q_OBJECT
public:
Drawer(QWidget *parent = 0);
QToolButton *toolButton1_1;
QToolButton *toolButton1_2;
QToolButton *toolButton1_3;
QToolButton *toolButton1_4;
QToolButton *toolButton1_5;
QToolButton *toolButton2_1;
QToolButton *toolButton2_2;
QToolButton *toolButton3_1;
QToolButton *toolButton3_2;
private:
QToolButton * initToolButton(const QString &sText, const QString &sIconFile);
};
#endif // DRAWER_H
drawer.cpp
#include "drawer.h"
#include <QtGui>
#include <QGroupBox>
Drawer::Drawer(QWidget *parent) :
QToolBox(parent)
{
setWindowTitle(tr("Qing"));
QGroupBox *groupBox1 = new QGroupBox;
QGroupBox *groupBox2 = new QGroupBox;
QGroupBox *groupBox3 = new QGroupBox;
toolButton1_1 = initToolButton(tr("z"),QString("G:/UI/images/face.png"));
toolButton1_2 = initToolButton(tr("a"),QString("G:/UI/images/face.png"));
toolButton1_3 = initToolButton(tr("b"),QString("G:/UI/images/face.png"));
toolButton1_4 = initToolButton(tr("c"),QString("G:/UI/images/face.png"));
toolButton1_5 = initToolButton(tr("d"),QString("G:/UI/images/face.png"));
toolButton2_1 = initToolButton(tr("e"),QString("G:/UI/images/face.png"));
toolButton2_2 = initToolButton(tr("雨舟"),QString("G:/UI/images/cat.png"));
toolButton3_1 = initToolButton(tr("f"),QString("G:/UI/images/face.png"));
toolButton3_2 = initToolButton(tr("g"),QString("G:/UI/images/face.png"));
QVBoxLayout *layout1 = new QVBoxLayout(groupBox1);
layout1->setMargin(10);
layout1->setAlignment(Qt::AlignHCenter);
layout1->addWidget(toolButton1_1);
layout1->addWidget(toolButton1_2);
layout1->addWidget(toolButton1_3);
layout1->addWidget(toolButton1_4);
layout1->addWidget(toolButton1_5);
QVBoxLayout *layout2 = new QVBoxLayout(groupBox2);
layout2->setMargin(10);
layout2->setAlignment(Qt::AlignHCenter);
layout2->addWidget(toolButton2_1);
layout2->addWidget(toolButton2_2);
layout2->addStretch();
QVBoxLayout *layout3 = new QVBoxLayout(groupBox3);
layout3->setMargin(10);
layout3->setAlignment(Qt::AlignHCenter);
layout3->addWidget(toolButton3_1);
layout3->addWidget(toolButton3_2);
layout3->addStretch();
this->addItem((QWidget*)groupBox1,tr("friend"));
this->addItem((QWidget*)groupBox2,tr("…^^…"));
this->addItem((QWidget*)groupBox3,tr("tea"));
}
QToolButton * Drawer::initToolButton(const QString &sText, const QString &sIconFile)
{
QToolButton *ptb = new QToolButton;
ptb->setText(sText);
ptb->setIcon(QPixmap(sIconFile));
ptb->setIconSize(QSize(72,72));
ptb->setAutoRaise(TRUE);
ptb->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
return ptb;
}
main.cpp
#include <QApplication> // 所有QT图形化应用程序必须包含此文件,它包含了QT图形化应用程序的各种资源、基本设置、控制流及事件处理等。
#include "drawer.h" // 自定义类头文件
#include <QTextCodec>
int main(int argc, char *argv[])
{
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
QApplication app(argc, argv);
Drawer *drawer = new Drawer();
drawer->show();
return app.exec();
}
实例.表格的使用
table.h
#ifndef TABLE_H#define TABLE_H#include <QtGui> // 包含了QT基本头文件和GUI头文件。GUI:图形用户界面。class Table : public QTableWidget{Q_OBJECT
public:
enum Sex{Male, Female};enum Work{Worker, Farmer, Docter, Lawyer, Soldier, Teacher};public:
Table();~Table();private:
void setRowData(int row, Table::Sex sex, QString name, Table::Work work, int income=0); // 设置一行数据};#endif // TABLE_H
table.cpp
#include "table.h"Table::Table():QTableWidget()
{setWindowTitle(tr("Qing")); // 设置窗口标题setColumnCount(5); // 设置表格控件列大小setRowCount(6); // 设置表格控件行的大小QStringList strList;strList << tr("Sex") << tr("Name") << tr("Birthday") << tr("Work") << tr("Income") ;setHorizontalHeaderLabels(strList); // 设置表格控件,列表头内容 setRowData(0, Table::Male, tr("LiXiujie"), Table::Worker, 5500);setRowData(1, Table::Female, tr("WanZhenjie"), Table::Worker, 2000);setRowData(2, Table::Male, tr("LiSi"), Table::Soldier, 1500);setRowData(3, Table::Male, tr("ZhangSan"), Table::Teacher, 4500);setRowData(4, Table::Female, tr("WangWu"), Table::Docter, 5500);setRowData(5, Table::Female, tr("Wendy"), Table::Lawyer, 4000);resize(510, 210);}Table::~Table(){}void Table::setRowData(int row, Table::Sex sex, QString name, Table::Work work, int income){QLabel *pLableSex = new QLabel(); // 标签控件if (0 == sex){pLableSex->setPixmap(QPixmap("G:/UI/images/fish.png")); // 设置标签控件的图形属性}else
{pLableSex->setPixmap(QPixmap("G:/UI/images/qq.gif")); // 设置标签控件的图形属性}setCellWidget(row, 0, pLableSex); // 添加控件到表格的单元格setColumnWidth(0, 48);QTableWidgetItem *pTWItem = new QTableWidgetItem(name);setItem(row, 1, pTWItem);QDateTimeEdit *pDTE= new QDateTimeEdit(); // 日期时间控件pDTE->setDateTime(QDateTime::currentDateTime()); // 设置日期时间控件的值为当前时间pDTE->setDisplayFormat("yyyy-MM-dd"); // 设置显示样式为“年-月-日”pDTE->setCalendarPopup(true); // 设置是否弹出日历编辑器setCellWidget (row, 2, pDTE);setColumnWidth(2, 120);QComboBox *pCB = new QComboBox(); // 下拉选择框控件pCB->addItem(tr("Worker"));
pCB->addItem(tr("Farmer"));
pCB->addItem(tr("Doctor"));
pCB->addItem(tr("Lawyer"));
pCB->addItem(tr("Soldier"));
pCB->addItem(tr("Teacher"));
pCB->setCurrentIndex(work); // 设置选中项setCellWidget(row, 3, pCB);QSpinBox *pSB = new QSpinBox(); // 数字上下增减框pSB->setMaximum(20000);
pSB->setValue(income);setCellWidget(row, 4, pSB);}main.cpp
#include<QApplication> // 所有QT图形化应用程序必须包含此文件,它包含了QT图形化应用程序的各种资源、基本设置、控制流及事件处理等。 #include"Table.h" // 自定义类头文件 intmain(int argc, char *argv[]) {QApplication::addLibraryPath("plugins");QApplicationapp(argc, argv); Table*table = new Table(); table->show();returnapp.exec(); }![]()