1. 程式人生 > >qt中獲取開啟檔案路徑,顏色對話方塊,字型對話方塊,自定義對話方塊,訊息對話方塊,輸入對話方塊

qt中獲取開啟檔案路徑,顏色對話方塊,字型對話方塊,自定義對話方塊,訊息對話方塊,輸入對話方塊

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));

這裡寫圖片描述