一、简述
记--简单的颜色对话框、字体对话框、输入对话框、文件对话框、消息框例子。
例子打包:链接: https://pan.baidu.com/s/1yZ8hEvDgB-2bVml-4ta5Kg 提取码: mntw
二、效果
三、工程结构
布局:
四、源文件
DialogDemo.pro文件
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = DialogDemo
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
RESOURCES += \
imgs.qrc
mainwindow.h文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_btnColor_clicked();
void on_btnFont_clicked();
void on_btnInput_clicked();
void on_actionOpen_triggered();
void on_actionSave_triggered();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
main.cpp文件
#include "mainwindow.h"
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
mainwindow.cpp文件
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include //消息对话框
#include //颜色对话框
#include //字体对话框
#include //输入对话框
#include //文件对话框
#include //文件相关信息
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_btnColor_clicked()//颜色对话框按钮
{
QColor color = QColorDialog::getColor(Qt::blue, this, "请选择颜色");
QString style = QString("background-color: rgb(%1, %2, %3);").arg(color.red()).arg(color.green()).arg(color.blue());
ui->edtContent->setStyleSheet(style);
}
void MainWindow::on_btnFont_clicked()//字体对话框按钮
{
bool is_ok;
QFont font = QFontDialog::getFont(&is_ok, QFont("微软雅黑"), this, "请选择字体");
ui->edtContent->setFont(font);
}
void MainWindow::on_btnInput_clicked()//输入对话框按钮
{
QString text = QInputDialog::getText(this,"输入对话框","请输入内容");
ui->edtContent->setText(text);
}
void MainWindow::on_actionOpen_triggered()//打开文件
{
//打开文件对话框,返回选择文件的绝对路径 父窗体 标题 默认打开路径(不写就会打开当前路径)
QString filePath = QFileDialog::getOpenFileName(this, "请选择文件", "D:\\test");
QFile *file = new QFile(filePath);//创建文件操作对象
bool isOk = file->open(QIODevice::ReadOnly);//以只读方式打开文件
if(isOk)
{
QByteArray array = file->readAll();//读取文件所有内容
ui->edtContent->setText(array);//QString中对'='进行运算符重载,可以直接接受QByteArray赋值
}
else
{
QMessageBox::warning(this, "提示!", "打开文件失败");
}
file->close();//关闭文件
}
void MainWindow::on_actionSave_triggered()//保存文件
{
//弹出保存文件对话框,输入要保存文件的名字 父窗体 标题 默认保存路径
QString savefile = QFileDialog::getSaveFileName(this,"保存文件", "D:\\test");
QFile *save = new QFile(savefile);
save->open(QIODevice::WriteOnly);//以只写方式打开文件
save->write( ui->edtContent->toPlainText().toUtf8());//将内容写入文件
save->close();//关闭文件
QMessageBox::warning(this, "提示!", "保存成功");
}
五、总结
5.1 包含文件
#include //消息对话框
#include //颜色对话框
#include //字体对话框
#include //输入对话框
#include //文件对话框
5.2 样式
background-color: rgb(60, 255, 99);
5.3 格式化字符串(填充字符串)
5.4 主要函数
打开文件:
//打开文件对话框,返回选择文件的绝对路径 父窗体 标题 默认打开路径(不写就会打开当前路径)
QString filePath = QFileDialog::getOpenFileName(this, "请选择文件", "D:\\test");
QFile *file = new QFile(filePath);//创建文件操作对象
bool isOk = file->open(QIODevice::ReadOnly);//以只读方式打开文件
if(isOk)
{
QByteArray array = file->readAll();//读取文件所有内容
ui->edtContent->setText(array);//QString中对'='进行运算符重载,可以直接接受QByteArray赋值
}
else
{
QMessageBox::warning(this, "提示!", "打开文件失败");
}
file->close();//关闭文件
保存文件
//弹出保存文件对话框,输入要保存文件的名字 父窗体 标题 默认保存路径
QString savefile = QFileDialog::getSaveFileName(this,"保存文件", "D:\\test");
QFile *save = new QFile(savefile);
save->open(QIODevice::WriteOnly);//以只写方式打开文件
save->write( ui->edtContent->toPlainText().toUtf8());//将内容写入文件
save->close();//关闭文件
5.5 添加快捷键、菜单小图标