#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
namespace Ui {
class MyWidget;
}
class MyWidget : public QWidget
{
Q_OBJECT
public:
explicit MyWidget(QWidget *parent = 0);
~MyWidget();
private slots:
void on_pushButton_clicked();
void on_pushButton_2_clicked();
void on_pushButton_3_clicked();
void on_pushButton_4_clicked();
void on_pushButton_5_clicked();
void on_pushButton_6_clicked();
private:
Ui::MyWidget *ui;
};
#endif // MYWIDGET_H
#include "mywidget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyWidget w;
w.show();
return a.exec();
}
#include "mywidget.h"
#include "ui_mywidget.h"
#include <QDebug>
#include <QColorDialog>
#include <QFileDialog>
#include <QFontDialog>
#include <QInputDialog>
#include <QMessageBox>
#include <QProgressDialog>
MyWidget::MyWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::MyWidget)
{
ui->setupUi(this);
}
MyWidget::~MyWidget()
{
delete ui;
}
void MyWidget::on_pushButton_clicked()
{
QColorDialog dialog(Qt::red, this);
dialog.setOption(QColorDialog::ShowAlphaChannel);
dialog.exec();
QColor color = dialog.currentColor();
qDebug() << "color:" << color;
}
void MyWidget::on_pushButton_2_clicked()
{
QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("文件对话框"), "C:", tr("图片文件( * png * jpg)"));
qDebug() << "fileNames:" << fileNames;
}
void MyWidget::on_pushButton_3_clicked()
{
bool ok;
QFont font = QFontDialog::getFont(&ok, this);
if(ok) ui->pushButton_3->setFont(font);
else qDebug() << tr("没有选择字体!");
}
void MyWidget::on_pushButton_4_clicked()
{
bool ok;
QString string = QInputDialog::getText(this, tr("输入字符串对话框"), tr("请输入用户名:"), QLineEdit::Normal, tr("admin"), &ok);
if(ok) qDebug() << "string:" << string;
int value1 = QInputDialog::getInt(this, tr("输入整数对话框"), tr("请输入-1000到1000之间的数值"), 100, -1000, 1000, 10, &ok);
if(ok) qDebug() << "value1:" << value1;
double value2 = QInputDialog::getDouble(this, tr("输入浮点数对话框"), tr("请输入-1000到1000之间的数值"), 0.00, -1000, 1000, 2, &ok);
if(ok) qDebug() << "value2:" << value2;
QStringList items;
items << tr("条目1") << tr("条目2");
QString item = QInputDialog::getItem(this, tr("输入条目对话框"), tr("请选择或输入下一个条目"), items, 0, true, &ok);
if(ok) qDebug() << "item:" << item;
}
void MyWidget::on_pushButton_5_clicked()
{
int ret1 = QMessageBox::question(this, tr("问题对话框"), tr("你了解 Qt 吗?"), QMessageBox::Yes, QMessageBox::No);
if(ret1 == QMessageBox::Yes) qDebug() << tr("问题!");
int ret2 = QMessageBox::information(this, tr("提示对话框"), tr("这是 Qt 书籍!"), QMessageBox::Ok);
if(ret2 == QMessageBox::Ok) qDebug() << tr("提示!");
int ret3 = QMessageBox::warning(this, tr("警告对话框"), tr("不能提前结束!"), QMessageBox::Abort);
if(ret3 == QMessageBox::Abort) qDebug() << tr("警告!");
int ret4 = QMessageBox::critical(this, tr("错误对话框"), tr("发现一个严重错误!现在要关闭所有文件!"), QMessageBox::YesAll);
if(ret4 == QMessageBox::YesAll) qDebug() << tr("错误!");
int ret5 = QMessageBox::question(this, tr("关于对话框"), tr("yafeilinux 致力于 Qt 及 Qt Creator 的普及工作!"), QMessageBox::Yes, QMessageBox::No);
}
void MyWidget::on_pushButton_6_clicked()
{
QProgressDialog dialog(tr("文件复制进度"), tr("取消"), 0, 50000, this);
dialog.setWindowTitle(tr("进度对话框"));
dialog.setWindowModality(Qt::WindowModal);
dialog.show();
for(int i = 0; i < 50000; i++) {
dialog.setValue(i);
QCoreApplication::processEvents();
if(dialog.wasCanceled()) break;
}
dialog.setValue(50000);
qDebug() << tr("复制文件");
}