<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # QtJambi 對話框 > 原文: [http://zetcode.com/gui/qtjambi/dialogs/](http://zetcode.com/gui/qtjambi/dialogs/) 在 QtJambi 編程教程的這一部分中,我們將使用對話框。 對話框窗口或對話框是大多數現代 GUI 應用必不可少的部分。 對話被定義為兩個或更多人之間的對話。 在計算機應用中,對話框是一個窗口,用于與應用“對話”。 對話框用于輸入數據,修改數據,更改應用設置等。對話框是用戶與計算機程序之間進行通信的重要手段。 ## `MessageDialog` 消息框是方便的對話框,可向用戶提供應用消息。 該消息由文本和圖像數據組成。 ```java package com.zetcode; import com.trolltech.qt.QSignalEmitter; import com.trolltech.qt.gui.QApplication; import com.trolltech.qt.gui.QGridLayout; import com.trolltech.qt.gui.QMessageBox; import com.trolltech.qt.gui.QPushButton; import com.trolltech.qt.gui.QWidget; /** * ZetCode QtJambi tutorial * * This program demonstrates * QMessageBox dialogs * * @author jan bodnar * website zetcode.com * last modified March 2009 */ public class JambiApp extends QWidget { public JambiApp() { setWindowTitle("Message Dialogs"); initUI(); resize(220, 90); move(400, 300); show(); } private void initUI() { QGridLayout grid = new QGridLayout(this); grid.setSpacing(2); QPushButton error = new QPushButton("Error", this); QPushButton warning = new QPushButton("Warning", this); QPushButton question = new QPushButton("Question", this); QPushButton information = new QPushButton("Information", this); QPushButton about = new QPushButton("About", this); grid.addWidget(error, 0, 0); grid.addWidget(warning, 0, 1); grid.addWidget(question, 1, 0); grid.addWidget(information, 1, 1); grid.addWidget(about, 2, 0); error.clicked.connect(this, "showDialog()"); warning.clicked.connect(this, "showDialog()"); question.clicked.connect(this, "showDialog()"); information.clicked.connect(this, "showDialog()"); about.clicked.connect(this, "showDialog()"); } private void showDialog() { QPushButton button = (QPushButton) QSignalEmitter.signalSender(); if ("Error".equals(button.text())) { QMessageBox.critical(this, "Error", "Error loading file!"); } else if ("Warning".equals(button.text())) { QMessageBox.warning(this, "Warning", "Operation not permitted!"); } else if ("Question".equals(button.text())) { QMessageBox.question(this, "Question", "Are you sure to quit?"); } else if ("Information".equals(button.text())) { QMessageBox.information(this, "Information", "Download completed."); } else if ("About".equals(button.text())) { QMessageBox.about(this, "About", "ZetCode QtJambi tutorial."); } } public static void main(String[] args) { QApplication.initialize(args); new JambiApp(); QApplication.exec(); } } ``` 我們使用`GridLayout`管理器來設置五個按鈕的網格。 每個按鈕顯示一個不同的消息框。 ```java QPushButton button = (QPushButton) QSignalEmitter.signalSender(); ``` 在這里,我們確定哪個按鈕稱為`showDialog()`方法。 ```java if ("Error".equals(button.text())) { QMessageBox.critical(this, "Error", "Error loading file!"); } ``` 如果按下錯誤按鈕,則會顯示錯誤對話框。 我們使用`QMessageBox`類的靜態方法來顯示消息框。 ![Information message dialog](https://img.kancloud.cn/d4/ae/d4ae11818b9f2af162efe0a4cc74ea87_208x117.jpg) ![Warning message dialog](https://img.kancloud.cn/cf/8f/cf8f49792a0e9836b2eb414e7081b52f_229x117.jpg) ![Question message dialog](https://img.kancloud.cn/4c/be/4cbef95bdc9781de9d958043c3bc59a7_203x117.jpg) ![Error message dialog](https://img.kancloud.cn/07/fd/07fd73102ecd163de8426feb6ba47af5_182x117.jpg) ![About message dialog](https://img.kancloud.cn/02/44/0244b1f335a79f6a5aec215283844569_198x108.jpg) ## `QInputDialog` `QInputDialog`類提供了一個簡單的便捷對話框,可從用戶那里獲取單個值。 輸入值可以是字符串,數字或列表中的項目。 必須設置標簽以告知用戶他們應該輸入什么。 ```java package com.zetcode; import com.trolltech.qt.core.Qt; import com.trolltech.qt.gui.QApplication; import com.trolltech.qt.gui.QInputDialog; import com.trolltech.qt.gui.QLineEdit; import com.trolltech.qt.gui.QPushButton; import com.trolltech.qt.gui.QWidget; /** * ZetCode QtJambi tutorial * * This program shows an input * dialog * * @author jan bodnar * website zetcode.com * last modified March 2009 */ public class JambiApp extends QWidget { QLineEdit edit; public JambiApp() { setWindowTitle("Input Dialog"); initUI(); move(400, 300); show(); } private void initUI() { setGeometry(300, 300, 350, 80); QPushButton show = new QPushButton("Dialog", this); show.clicked.connect(this, "showDialog()"); show.setFocusPolicy(Qt.FocusPolicy.NoFocus); show.move(20, 20); edit = new QLineEdit(this); edit.move(130, 22); } private void showDialog() { String text = QInputDialog.getText( this, "Input Dialog", "Enter your name"); if (text!=null && !text.trim().isEmpty()) { edit.setText(text); } } public static void main(String[] args) { QApplication.initialize(args); new JambiApp(); QApplication.exec(); } } ``` 在代碼示例中,我們有一個按鈕和一行編輯。 該按鈕顯示一個輸入對話框。 我們得到一些文本,文本顯示在行編輯小部件中。 ```java String text = QInputDialog.getText( this, "Input Dialog", "Enter your name"); ``` `getText()`靜態方法創建輸入對話框。 對話框中的文本存儲在`text`變量中。 ```java if (text!=null && !text.trim().isEmpty()) { edit.setText(text); } ``` 在更新行編輯之前,請確保`text`變量不為`null`且不為空,并且不僅由空格組成。 ![Input dialog](https://img.kancloud.cn/e2/ad/e2adf580f28f8532fe72af6305cc3d67_206x135.jpg) 圖:輸入對話框 ## `QColorDialog` `QColorDialog`類提供用于指定顏色的對話框小部件。 顏色對話框的功能是允許用戶選擇顏色。 ```java package com.zetcode; import com.trolltech.qt.core.Qt; import com.trolltech.qt.gui.QApplication; import com.trolltech.qt.gui.QColor; import com.trolltech.qt.gui.QColorDialog; import com.trolltech.qt.gui.QLabel; import com.trolltech.qt.gui.QMouseEvent; import com.trolltech.qt.gui.QVBoxLayout; import com.trolltech.qt.gui.QWidget; import java.util.Formatter; /** * ZetCode QtJambi tutorial * * In this program, we use the * QColorDialog to change the color * of a label text * * @author jan bodnar * website zetcode.com * last modified March 2009 */ public class JambiApp extends QWidget { QLabel label; public JambiApp() { setWindowTitle("Color Dialog"); initUI(); resize(250, 200); move(400, 300); show(); } private void initUI() { label = new QLabel("ZetCode QtJambi tutorial", this); QVBoxLayout vbox = new QVBoxLayout(this); label.setAlignment(Qt.AlignmentFlag.AlignCenter); vbox.addWidget(label); } @Override public void mousePressEvent(QMouseEvent event) { QColor color = QColorDialog.getColor(); if (!color.isValid()) return; Formatter fmt = new Formatter(); fmt.format("QWidget { color: %s }", color.name()); label.setStyleSheet(fmt.toString()); } public static void main(String[] args) { QApplication.initialize(args); new JambiApp(); QApplication.exec(); } } ``` 我們在窗口中心顯示一些文本。 通過單擊窗口區域,我們顯示一個顏色對話框。 我們將文本前景色更改為從對話框中選擇的顏色。 ```java @Override public void mousePressEvent(QMouseEvent event) { ... } ``` 為了接收我們窗口的鼠標按下事件,我們必須重新實現`mousePressEvent()`方法。 ```java QColor color = QColorDialog.getColor(); ``` 正在創建`QColorDialog`。 所選顏色存儲在`color`變量中。 ```java Formatter fmt = new Formatter(); fmt.format("QWidget { color: %s }", color.name()); label.setStyleSheet(fmt.toString()); ``` 在這里,我們更新標簽文本的前景色。 ![QColorDialog](https://img.kancloud.cn/ca/7b/ca7bc14ae45e67d8358252d27471dafa_350x270.jpg) 圖:`QColorDialog` ## `QFontDialog` `QFontDialog`類提供用于選擇字體的對話框小部件。 ```java package com.zetcode; import com.trolltech.qt.core.Qt; import com.trolltech.qt.gui.QApplication; import com.trolltech.qt.gui.QFontDialog; import com.trolltech.qt.gui.QLabel; import com.trolltech.qt.gui.QMouseEvent; import com.trolltech.qt.gui.QVBoxLayout; import com.trolltech.qt.gui.QWidget; /** * ZetCode QtJambi tutorial * * In this program, we use the * QFontDialog to change the font * of a label text * * @author jan bodnar * website zetcode.com * last modified March 2009 */ public class JambiApp extends QWidget { QLabel label; public JambiApp() { setWindowTitle("QFontColor dialog"); initUI(); resize(250, 200); move(300, 300); show(); } private void initUI() { label = new QLabel("ZetCode QtJambi tutorial", this); QVBoxLayout vbox = new QVBoxLayout(this); label.setAlignment(Qt.AlignmentFlag.AlignCenter); vbox.addWidget(label); } @Override public void mousePressEvent(QMouseEvent event) { QFontDialog.Result result = QFontDialog.getFont(); if (!result.ok) return; label.setFont(result.font); } public static void main(String[] args) { QApplication.initialize(args); new JambiApp(); QApplication.exec(); } } ``` 此示例與上一個示例相似。 這次,我們更改文本的字體。 ```java QFontDialog.Result result = QFontDialog.getFont(); ``` 正在創建`QFontDialog`。 該對話框返回`QFontDialog.Result`類。 此類有兩個字段。 字體和確定字段。 ```java if (!result.ok) return; ``` 如果單擊對話框的“確定”按鈕,則布爾值`ok`為`true`。 如果按下了取消按鈕,我們將從方法中返回。 ```java label.setFont(result.font); ``` `font`字段存儲所選字體。 我們將標簽的字體更新為新選擇的字體。 ![QFontDialog](https://img.kancloud.cn/40/3e/403ef54cd8fe7d45bf6baaea8d6ecc72_350x266.jpg) 圖:`QFontDialog` 在 QtJambi 教程的這一部分中,我們使用了對話框窗口。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看