实现打开字体对话框,颜色对话框,目录对话框
头文件
#define WIDGET_H
#include <QWidget>
#include<QFont>
#include<QFontDialog>
#include<QColorDialog>
#include<QMessageBox>
#include<QColor>
#include<QFile>
#include<QFileDialog>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void on_FontBtn_clicked();
void on_ColorBtn_clicked();
void on_OpenBtn_clicked();
void on_SaveBtn_clicked();
private:
Ui::Widget *ui;
public:
QFont Font;
QColor color;
};
#endif // WIDGET_H
.cpp文件
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_FontBtn_clicked()
{
bool ok;
Font = QFontDialog::getFont(&ok,QFont("宋体",20,10,false),this);
if(ok)
{
//ui->text_edit1->setFont(Font);
ui->text_edit1->setCurrentFont(Font);
}
else
{
QMessageBox::information(this,"提示","您没有选择字体");
}
}
void Widget::on_ColorBtn_clicked()
{
///获取一个颜色对话框,选择一个颜色
color = QColorDialog::getColor(QColor(255,255,255),this,"选择颜色");
if(color.isValid())
{
//使用选择的颜色
//ui->text_edit1->setTextColor(color);
//设置背景色
ui->text_edit1->setTextBackgroundColor(color);
}
else
{
QMessageBox::information(this,"提示","您没有选择颜色");
}
}
void Widget::on_OpenBtn_clicked()
{
QString filename= QFileDialog::getOpenFileName(this,"选择文件","./","all file(*.*);;Text(*.txt)");
QFile file(filename);
//打开文件
if(!file.open(QFile::ReadOnly))
{
return ;
}
//读取数据
QByteArray array = file.readAll();
ui->text_edit1->setText(array);
//关闭文件
file.close();
}
void Widget::on_SaveBtn_clicked()
{
QString filename = QFileDialog::getSaveFileName(this,"保存文件","./","all file(*.*);;Text(.txt)");
QFile file(filename);
if(!file.open(QFile::WriteOnly))
return;
//获取数据
char * str = ui->text_edit1->toPlainText().toUtf8().data();
file.write(str);
file.close();
}
界面