ホームページ  >  記事  >  バックエンド開発  >  レッスン 3-Qt ダイアログ_PHP チュートリアル

レッスン 3-Qt ダイアログ_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-12 09:05:351219ブラウズ

lesson3-Qt ダイアログ ボックス

1. QDialog クラス
1. ダイアログ ボックスの概念
ダイアログ ボックスは、一般に、ユーザーに情報を提示したり、ユーザーからのフィードバック情報を受け取るために使用されます。アプリケーションとユーザーが対話するためのプラットフォーム。
ダイアログ ボックスはトップレベル ウィンドウであり、他のウィンドウに埋め込むことはできません。
2. ダイアログ ボックスの種類
1)、モーダル ダイアログ ボックス、アプリケーションの他のウィンドウにはアクセスできません。モーダル ダイアログ ボックスを表示するには、通常、その exec() 関数を呼び出す必要があります。 2) 非モーダル ダイアログ ボックス ダイアログ ボックスでは、アプリケーションの他のウィンドウに引き続きアクセスできます。モードレス ダイアログ ボックスを表示するには、通常、その show() 関数を呼び出します
3。QDialog クラスの親クラスは QWidget

です。



2. QDialog 派生クラス
開発者の使用を容易にするために、Qt はいくつかの特別な機能ダイアログ ボックスをカプセル化し、標準ダイアログ ボックスのセットを提供します。これらの組み込みダイアログ ボックスは、通常、システムのローカル ダイアログ ボックスを呼び出します

使用法:
1. ファイル ダイアログ ボックスを開き、選択したファイル名を返しますQString str = QFileDialog: : getOpenFileName(
親ウィンドウ,
ダイアログ名,
デフォルトの選択パス,
ファイルフィルター); 2. 名前に従ってファイルを開き、成功した場合は true、失敗した場合は false を返します
QFile file(str);
file。 open(QIODevice ::ReadWrite);
3. 入力ストリームを取得します
QTextStream in(&file);
4. 入力ストリームを行ごとに読み取ります
in.readLine();


2. QColorDialog


使用法:
1. パレットを取得します
QPalette パレット = textEdit->palette();2. カラーダイアログボックスを開き、色を取得します
QColor color = QColorDialog::getColor(
palette.color(QPalette::Text), / /ダイアログの初期化 Color
this //親ウィンドウ
);
3. パレットの色を設定します
palette->setColor(
QPalette::Text, //設定するパレットの部分
color //設定する色set
) ;
4. パレットをロード
textEdit->setPalette(palette);

GUI がそれぞれの部分にカラーフラグを設定します



3. QFontDialog

使用法:
1.フォントを取得します
bool ok;QFont font = QFontDialog::getFont(&ok);
ダイアログボックスの「OK」ボタンをクリックした場合、「キャンセル」ボタンをクリックするとokの値がtrueになります。ダイアログボックスを開くと、ok の値が false になります
2. フォントを設定します
textEdit->setFont(font);

4. QInputDialog


使用法:
入力ダイアログボックスを開くと、入力内容が次のようになります。 returns
QString str = QInputDialog ::getText(
this, //親ウィンドウ "inputDialog", //ウィンドウのタイトル
"入力してください", //入力ボックスのラベルテキスト
QLineEdit::Normal, //エディットボックスが表示されます
QDir: :home(), //エディットボックスのデフォルトの内容
ok //bool変数をバックフィル
)

5, QProgressDialog


QProgress::setRange(0,100) //プログレスバーを設定しますrange
QProgress::setValue(50) //進行状況バーの現在の値を設定します

3. QMessageBoxQt には、情報を表示するためのいくつかのメッセージ ボックスがあり、これらのメッセージ ボックスはすべてソフトウェアでよく使用されるモーダル ダイアログ ボックスです。 1. QMessageBox::question
タイトルとテキストを含むメッセージ問い合わせボックス。開発者は特定のニーズに応じてボタンの数とその機能をカスタマイズできます


2. QMessageBox::informat
タイトルとプロンプトを含むプロンプトメッセージボックス。開発者は、特定のニーズに応じてカスタマイズできます。ボタンの数と機能はカスタマイズする必要があります


3. タイトルとテキスト情報を含む警告メッセージ ボックス。特定のニーズに応じてボタンの数とボタンの機能

4. QMessageBox::critical
タイトルとテキスト情報を含む致命的なメッセージ ボックス。開発者は特定のニーズに応じてボタンの数とその機能をカスタマイズできます

5. タイトルとテキストを含むメッセージ ボックス

6. :aboutQt
Qt に関するメッセージボックスを表示

7. メッセージボタンの開発



4. ヘッダーファイル
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>#ifndef BUILDINDIALOG_H<br /> </li><li>#define BUILDINDIALOG_H<br /></li><li><br /></li><li>#include <QtGui><br /></li><li><br /></li><li>class buildInDialog : public QDialog<br /></li><li>{<br /></li><li>Q_OBJECT<br /></li><li>public:<br /></li><li>buildInDialog();<br /></li><li>private:<br /></li><li>QPushButton *fileBtn;<br /></li><li>QPushButton *colorBtn;<br /></li><li>QPushButton *fontBtn;<br /></li><li>QPushButton *saveBtn;<br /></li><li>QPushButton *closeBtn;<br /></li><li><br /></li><li>QTextEdit *textEdit;<br /></li><li>private slots:<br /></li><li>void fileSlot();<br /></li><li>void colorSlot();<br /></li><li>void fontSlot();<br /></li><li>void saveSlot();<br /></li><li>void closeSlot();<br /></li><li><br /></li><li>};<br /></li><li><br /></li><li><br /></li><li><br /></li><li>#endif</li></ol>
2、実装ファイル
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>#include "buildInDialog.h"<br /> </li><li><br /></li><li>buildInDialog::buildInDialog()<br /></li><li>{<br /></li><li>fileBtn = new QPushButton("open");<br /></li><li>colorBtn = new QPushButton("color");<br /></li><li>fontBtn = new QPushButton("font");<br /></li><li>saveBtn = new QPushButton("save");<br /></li><li>closeBtn = new QPushButton("close");<br /></li><li><br /></li><li>textEdit = new QTextEdit();<br /></li><li><br /></li><li><br /></li><li>//布局<br /></li><li>QVBoxLayout *vLay = new QVBoxLayout();<br /></li><li>QHBoxLayout *hLay = new QHBoxLayout();<br /></li><li>vLay->addWidget(fileBtn);<br /></li><li>vLay->addWidget(colorBtn);<br /></li><li>vLay->addWidget(fontBtn);<br /></li><li>vLay->addWidget(saveBtn);<br /></li><li>vLay->addWidget(closeBtn);<br /></li><li><br /></li><li>hLay->addWidget(textEdit);<br /></li><li>hLay->addLayout(vLay);<br /></li><li><br /></li><li>setLayout(hLay);<br /></li><li><br /></li><li>connect(fileBtn, SIGNAL(clicked()), this, SLOT(fileSlot()));<br /></li><li>connect(colorBtn, SIGNAL(clicked()), this, SLOT(colorSlot()));<br /></li><li>connect(fontBtn, SIGNAL(clicked()), this, SLOT(fontSlot()));<br /></li><li>connect(saveBtn, SIGNAL(clicked()), this, SLOT(saveSlot()));<br /></li><li>connect(closeBtn, SIGNAL(clicked()), this, SLOT(closeSlot()));<br /></li><li>}<br /></li><li><br /></li><li>void buildInDialog::fileSlot()<br /></li><li>{<br /></li><li>//获取文件名字<br /></li><li>QString str = QFileDialog::getOpenFileName(this, "打开文件", "/", "All File(*.*)");<br /></li><li><br /></li><li>//打开文件<br /></li><li>QFile file(str);<br /></li><li>if(!file.open(QIODevice::ReadWrite))<br /></li><li>return;<br /></li><li>//得到输入流<br /></li><li>QTextStream in(&file);<br /></li><li>//读取数据<br /></li><li>while(!in.atEnd())<br /></li><li>{<br /></li><li>QString st = in.readLine();<br /></li><li>textEdit->append(st);<br /></li><li>}<br /></li><li>}<br /></li><li><br /></li><li>void buildInDialog::colorSlot()<br /></li><li>{<br /></li><li>//获取条色板<br /></li><li>QPalette palette = textEdit->palette();<br /></li><li>//打开对话框,获取颜色<br /></li><li>QColor color = QColorDialog::getColor(palette.color(QPalette::Text), this);<br /></li><li><br /></li><li>if(color.isValid())<br /></li><li>{<br /></li><li>//将颜色放到条色板<br /></li><li>palette.setColor(QPalette::Window, color);<br /></li><li>//加载调色板<br /></li><li>textEdit->setPalette(palette);<br /></li><li>}<br /></li><li><br /></li><li>}<br /></li><li><br /></li><li>void buildInDialog::fontSlot()<br /></li><li>{<br /></li><li>bool ok;<br /></li><li>QFont font = QFontDialog::getFont(&ok);<br /></li><li>if(ok)<br /></li><li>textEdit->setFont(font);<br /></li><li>}<br /></li><li><br /></li><li>void buildInDialog::saveSlot()<br /></li><li>{<br /></li><li>bool ok;<br /></li><li>//获取输入的信息<br /></li><li>QString str = QInputDialog::getText(this, "输入对话框", "请输入名字", QLineEdit::Normal, "wj", &ok);<br /></li><li><br /></li><li>//根据输入的名字打开文件<br /></li><li>QFile file(str);<br /></li><li>file.open(QIODevice::WriteOnly);<br /></li><li>//获取输出流<br /></li><li>QTextStream out(&file);<br /></li><li>//将textEdit的内容写入到out<br /></li><li>out<<textEdit->toPlainText()<<"\n";<br /></li><li>}<br /></li><li><br /></li><li>void buildInDialog::closeSlot()<br /></li><li>{<br /></li><li>QProgressDialog *progress = new QProgressDialog();<br /></li><li>progress->setRange(0, 100);<br /></li><li>for(int i=0; i<=100; i+=10)<br /></li><li>{<br /></li><li>qApp->processEvents();<br /></li><li>progress->setValue(i);<br /></li><li>sleep(1);<br /></li><li>}<br /></li><li>} </li></ol>
3、メイン関数
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>#include "buildInDialog.h"<br /> </li><li>#include <QApplication><br /></li><li><br /></li><li>int main(int argc, char *argv[])<br /></li><li>{<br /></li><li>//设置编码,防止汉字出现乱码<br /></li><li>QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8"));<br /></li><li>QApplication app(argc, argv);<br /></li><li><br /></li><li>buildInDialog dialog;<br /></li><li>dialog.show();<br /></li><li><br /></li><li>return app.exec();<br /></li><li>} </li></ol>






http://www.bkjia.com/PHPjc/1068089.html

www.bkjia.com

http://www.bkjia.com/PHPjc/1068089.html技術記事レッスン 3-Qt ダイアログ ボックス 1. QDialog クラス 1. ダイアログ ボックスの概念は、通常、ユーザーに情報を提示したり、ユーザーからのフィードバック情報を受信したりするために使用されます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。