Qt標準對話框設置,設置字體、調色板、進度條等。文章來源地址http://www.zghlxwxcb.cn/news/detail-834915.html
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
QPalette pa = ui->textEdit->palette();
QColor initColor = pa.color(QPalette::Text);//獲取原來顏色
QColor color = QColorDialog::getColor(initColor,this,"選擇顏色");//調色板剛打開時,初始化為原顏色
if(color.value()){
pa.setColor(QPalette::Text,color);
ui->textEdit->setPalette(pa);//為小部件設置新修改的顏色
}
}
//設置的字體,需要在程序啟動后輸入的文本設置,如果是原本在ui文件中寫死的文本,則字體設置不起作用
void MainWindow::on_pushButtonFont_clicked()
{
QFont initFont = ui->textEdit->font();//獲取當前字體
bool ok = false;
QFont font = QFontDialog::getFont(&ok,initFont);
if(ok){
ui->textEdit->setFont(font);
}
}
//進度條
void MainWindow::on_pushButtoProgress_clicked()
{
QProgressDialog progress("正在復制文件… …","取消",0,200,this);
progress.setWindowTitle("正在復制");
progress.setWindowModality(Qt::WindowModal);//設置模態(tài)
connect(&progress,&QProgressDialog::canceled,this,[&]{ui->textEdit->append("進度條已經(jīng)取消了");});//設置一個信號槽,當進度條取消按鈕按下后,打印一條消息
//模擬時間消耗
QElapsedTimer msCounter;//模擬一個毫秒計時器
for(int i=0; i<=200; i++){
progress.setValue(i);
progress.setLabelText(QString::asprintf("正在復制,第%d",i));
msCounter.start();
while (1) {
if(msCounter.elapsed() > 30){//每次循環(huán)等待30毫秒,就退出
break;
}
}
//如果點擊了取消按鈕,直接退出,不在循環(huán)了
if(progress.wasCanceled()){
break;
}
}
}
//輸入字符串對話框顯示
void MainWindow::on_pushButtoInput_clicked()
{
QString title = "輸入對話框";
QString textLable = "請輸入文件名";
QString initText = "新建文件.txt";
bool ok = false;
QLineEdit::EchoMode echoMode = QLineEdit::Password;//以密碼形式的輸入小部件顯示
QString text = QInputDialog::getText(this,title,textLable,echoMode,initText,&ok);
if(ok && !text.isEmpty()){
ui->textEdit->append(text);
}
}
//輸入整形對話框,調整字體大小
void MainWindow::on_pushButtoInputInt_clicked()
{
QString title = "輸入整形對話框";
QString txtLable = "設置文本框字體大小";
int defaultFontSize = ui->textEdit->font().pointSize();//獲取小部件默認字體大小
int minFontSize = 6;//最小字體大小
int maxFontSize = 80;//最大字體大小
int stepValue = 1;//步進長度
bool ok = false;
int inputValue = QInputDialog::getInt(this,title,txtLable,defaultFontSize,minFontSize,maxFontSize,stepValue,&ok);
if(ok){
QString str = QString("文本框字體大小設置為: %1").arg(inputValue);
ui->textEdit->append(str);
QFont font = ui->textEdit->font();
font.setPointSize(inputValue);
ui->textEdit->setFont(font);
}
}
//輸入條目對話框
void MainWindow::on_pushButtoInputItem_clicked()
{
QString title = "輸入條目對話框";
QString textLable = "請選擇型號 ";
QStringList items;
items<<"甲"<<"乙"<<"丙"<<"丁";
int curIndex = 0;//當前索引
bool ok = false;
bool editable = false;//不可編輯
QString text = QInputDialog::getItem(this,title,textLable,items,curIndex,editable,&ok);
if(ok && !text.isEmpty()){
ui->textEdit->append(text);
}
}
文章來源:http://www.zghlxwxcb.cn/news/detail-834915.html
到了這里,關于Qt標準對話框設置的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!