qt中獲取開啟檔案路徑,顏色對話方塊,字型對話方塊,自定義對話方塊,訊息對話方塊,輸入對話方塊
阿新 • • 發佈:2019-01-25
1.獲取開啟檔案的檔案路徑
//獲取開啟檔案的檔案路徑--父視窗,視窗名稱,開啟路徑,檔案篩選
QString s = QFileDialog::getOpenFileName(this,"open file dialog","/","C++ files(*.cpp)::C files(*.c)::Head files(*.h)");
2.開啟顏色管理器,獲取選中的顏色
//開啟顏色管理器,獲取選中的顏色,並改變QFrame的顏色為選中的顏色
QColor c = QColorDialog::getColor(Qt::blue);
if(c.isValid())
{
QFrame *frame= new QFrame;
frame->setFrameShape(QFrame::Box);
frame->setAutoFillBackground(true);
frame->setPalette(QPalette(c));
}
3.開啟字型設定對話方塊,返回設定的字型
//開啟字型設定對話方塊,返回設定的字型
bool ok;
QFont f = QFontDialog::getFont(&ok);
if (ok)
{
//lineEdit->setFont(f);
}
4.使用者自定義對話方塊
//使用者自定義對話方塊,並返回使用者點選的按鈕
QMessageBox customMsgBox;
customMsgBox.setWindowTitle(tr("使用者自定義訊息框"));
QPushButton *yesBtn=customMsgBox.addButton(tr("Yes"),QMessageBox::ActionRole);
QPushButton *noBtn=customMsgBox.addButton(tr("No"),QMessageBox::ActionRole);
QPushButton *cancelBtn=customMsgBox.addButton(QMessageBox::Cancel);
customMsgBox. setText(tr("這是一個使用者自定義訊息框!"));
customMsgBox.setIconPixmap(QPixmap("Qt.png"));
customMsgBox.exec();
if(customMsgBox.clickedButton()==yesBtn)
return 1;
if(customMsgBox.clickedButton()==noBtn)
return 0;
if(customMsgBox.clickedButton()==cancelBtn)
return 2;
return;
5.標準訊息對話方塊
//1.QuestionMessageBox
int tempnum = 1;
switch(QMessageBox::question(this,tr("Question框"),
tr("修改完成,是否要結束程式?"),
QMessageBox::Ok|QMessageBox::Cancel,QMessageBox::Ok))
{
case QMessageBox::Ok:
tempnum = 1;
break;
case QMessageBox::Cancel:
tempnum = 0;
break;
default:
break;
}
return tempnum;
//2.informationMessageBox
QMessageBox::information(this,tr("Information框"),tr("這是Information框"));
//3.warningMessageBox
int tempnum = 1;
switch(QMessageBox::warning(this,tr("Warning框"),
tr("您修改的內容還未儲存,是否要儲存?"),
QMessageBox::Save|QMessageBox::Discard|QMessageBox::Cancel,
QMessageBox::Save))
{
case QMessageBox::Save:
tempnum = 1;
break;
case QMessageBox::Discard:
tempnum = 2;
break;
case QMessageBox::Cancel:
tempnum = 0;
break;
default:
break;
}
return tempnum;
//4.criticalMessageBox--錯誤訊息框
QMessageBox::critical(this,tr("Critical訊息框"),tr("Critical框測試!"));
//5.aboutMessageBox
QMessageBox::about(this,tr("About訊息框"),tr("About框測試!"));
6.標準輸入對話方塊
//1.字串
bool ok;
QString text=QInputDialog::getText(this,tr("標準輸入對話方塊"),tr("請輸入XXXX:"), QLineEdit::Normal,"預設內容",&ok);
if (ok && !text.isEmpty())
return text;
//2.下拉框
QStringList SexItems;
SexItems << tr("男") << tr("女");
bool ok;
QString SexItem = QInputDialog::getItem(this, tr("標準條目選擇對話方塊"),
tr("請選擇性別:"), SexItems, 0, false, &ok);
if (ok && !SexItem.isEmpty())
return SexItem;
//3.int型
bool ok;
int age = QInputDialog::getInt(this, tr("標準int型別輸入對話方塊"),
tr("請輸入年齡:"), ageLabel2->text().toInt(&ok), 0, 100, 1, &ok);
if (ok)
ageLabel2->setText(QString(tr("%1")).arg(age));
//4.double型
bool ok;
double score = QInputDialog::getDouble(this, tr("標準double型別輸入對話方塊"),
tr("請輸入成績:"),scoreLabel2->text().toDouble(&ok), 0, 100, 1, &ok);
if(ok)
scoreLabel2->setText(QString(tr("%1")).arg(score));