这是我记录Qt学习过程心得文章的第三篇,主要是为了方便QInputDialog输入框的使用,通过自定义的方式,按钮中文化,统一封装成一个函数,还是写在了Skysonya类里面。
实现代码:
//中文按钮文本输入对话框
QString Skysonya::inputDialog(QString dlgTitle, QString labelText, QString textValue)
{
QString inputText{};
QLineEdit::EchoMode echoMode = QLineEdit::Normal; //正常文字输入;//::Password;密码输入
QInputDialog *getText = new QInputDialog();
getText->setOkButtonText("确定");
getText->setCancelButtonText("取消");
getText->setWindowTitle(dlgTitle);
getText->setLabelText(labelText);
getText->setTextValue(textValue);
getText->setTextEchoMode(echoMode);
if (QDialog::Accepted == getText->exec())
{
inputText = getText->textValue();
}
return inputText;
}
具体使用:
//文件
void MainWindow::slot_file_triggered()
{
//输入对话框
QString strInfo = skysonya.inputDialog("对话框", "请输入:");
skysonya.messageBox("warning", "输入对话框", strInfo);
}
自定义类:
#ifndef SKYSONYA_H
#define SKYSONYA_H
#include <QDebug>
#include <QFile>
#include <QInputDialog>
#include <QMessageBox>
#include <QObject>
#include <QPushButton>
#include <QString>
#include <QTextCodec>
enum EncodingFormat
{
ANSI,
UTF16LE,
UTF16BE,
UTF8,
UTF8BOM,
};
class Skysonya : public QObject
{
Q_OBJECT
Q_ENUM(EncodingFormat)
public:
explicit Skysonya(QObject *parent = nullptr);
~Skysonya();
QString doAppAbout(QString appName); //程序关于信息
bool messageBox(QString msgType, QString dlgTitle, QString strInfo); //中文提示对话框
QString inputDialog(QString dlgTitle, QString labelText, QString textValue = ""); //中文按钮文本输入对话框
QTextCodec *getFileCharacterEncoding(const QString &fileName); //获取文件编码格式函数
QString openFileByIOWhole(const QString &fileName); //用QFile打开文件,整体读取
QString openFileByIOLines(const QString &fileName); //用QFile打开文件,逐行读取
QString openFileByStreamWhole(const QString &fileName); //用QTextStream读取文件,整体读取
QString openFileByStreamLines(const QString &fileName); //用QTextStream读取文件,逐行读取
bool saveFileByIOWhole(const QString &fileName, QString text); //用QFile保存文件,整体保存
bool saveFileByStreamWhole(const QString &fileName, QString text); //用QTextStream保存文件,整体保存
private:
QString appVersion; //软件版本号
QString buildTime; //程序构建时间
QString qtVersion; // QT版本号
QString fun_buildTime(); //获取程序构建时间
};
#endif // SKYSONYA_H
完整的示例地址:https://download.csdn.net/download/skysonya_shisy/89861254