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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 7.6 問題與解答 問:內建對話框的控件怎么改文本? 比如說 QMessageBox::critical(this, QObject::tr("警告!"), QObject::tr("請正 確輸入!"));我要把顯示的 OK 按鈕文本改為“確定”,怎么獲得 OK 的指針? 答:在本章前面已經講到,這種情況下不要使用 QMessageBox 類的靜態方法,下面是 一個類似這種需求時的示例代碼: ``` QMessageBox msgBox; QPushButton *connectButton = msgBox.addButton(tr("Connect"), QMessageBox::ActionRole); QPushButton *abortButton = msgBox.addButton(QMessageBox::Abort); msgBox.exec(); if (msgBox.clickedButton() == connectButton) { // connect } else if (msgBox.clickedButton() == abortButton) { // abort } ``` 注意重點是 QMessageBox 類的 addButton()方法的使用,其原型可以通過查閱幫助獲得。 問:能不能通過對話框的 Title 索引它? 比如我有一個主窗口,其中打開了幾個子窗口,我是否可以通過它們的標題來得到它們的指針,繼而引用它們? 答:從你的表述來看,你的問題可以歸結為如何通過子窗口的 windowTitle 屬性來索 引并控制不同的子窗口。 實際上我們很少通過 windowTitle 屬性來區分子窗口,因為往往這個屬性的值并不是 唯一的,而是可能重復的。所以我們一般是通過 objectName 這個屬性來索引不同的子窗 口,繼而可以獲得其它的屬性值,包括 windowTitle。 可以通過 QObject::findChild()、QObject::findChildren()或者是 qFindChild()、 qFindChildren()方法來索引子窗口,請看下面的例子,一個 QPushButton 類對象,它的 objectName 屬性為"button1",下面的代碼使用 findChild()方法獲得了這個子窗口的指針。 ``` QPushButton *button = parentWidget-&gt;findChild&lt;QPushButton *&gt;("button1"); ``` 要獲得父窗口的所有子窗口,可以使用 findChildren()方法,下面的代碼取得了 parentWidget 的所有類別為 QPushButton 的子窗口: ``` QList&lt;QPushButton *&gt; allPButtons = parentWidget.findChildren&lt;QPushButton *&gt;(); ``` 需要注意的是 QObject::findChild()、QObject::findChildren()不能與 MSVC6 一起使用,如果要與 MSVC6 配合,則可以換成 qFindChild()、qFindChildren(),它們實現相同的功能。 問:請問我在 Qt Designer 里面設置一個 OKbutton,我將信號 clicked()和槽 accept()相連 接,但為什么運行后點它實現的是關閉對話框的功能呢 答:可以看一下 accept()這個槽的定義: ``` void QDialog::accept () [virtual slot] //Hides the modal dialog and sets the result code to Accepted. ``` 確切說,它是隱藏(hide)這個對話框,看起來的效果是關閉了這個對話框,但是在對話框關閉后,其對象仍然存在,并沒有被銷毀。 問:如何創建一個不帶標題欄的 QMessageBox? 答:可以使用下面的代碼創建,不是使用 QMessageBox 類的靜態方法。 ``` QMessageBox mgb ; mgb.setWIndowFlags(Qt::FrameLessTopHint) ; mgb.exec() ; ``` 問:如何讓一個對話框總在所有窗口的最前面顯示? 答:最簡單的方法只需添加一句代碼: ``` this-&gt;setWindowFlags(Qt::WindowStaysOnTopHint); ``` 問:在 Qt4 中如何為對話框設置背景? 答:這個問題值得總結一下。大致有以下的思路和方法: 1\.重寫 paintEvent()事件 在該事件中用畫筆 QPainter 重畫整個背景。該方法比較復雜,不建議初學者采 用。 2\.使用調色板類 QPalette ``` //以下代碼中 pWidget 為指向要設置的 widget 的指針。 QPalette palette = pWidget-&gt;palette(); palette-&gt;setBrush(QPalette::Active,QPalette::Window,QBrush(Qt::red)) pWidget-&gt;setPalette(palette); pWidget-&gt;setAutoBackground(true); ``` 推薦使用這種方法,大家可以查看一下 setBrush()方法的定義: ``` Palette::setBrush ( ColorGroup group, ColorRole role, const QBrush &brush ) ``` 這個是一個重載版本,最為重要的是第二個參數,可以設置許多不同的類型。舉例來說, 如果 pWidget 指向的是一個 QListWidget 或者 QTextEdit 對象,如果把第二個參數設置 成 QPalette::Text,則是設置其中文字的顏色;如果第二個參數是 QPalette::BrightText,則是設置該對象被選中時,其文字的顏色;如果第二個參數 QPalette::Bright 則表示設置選中該 對象時,高亮背景的顏色或者圖片。該函數的功能是很強大的。 3\.使用樣式表。 ``` pWidget-&gt;setStyleSheet("background-color:blue;"); //設置背景顏色 pWidget-&gt;setStyleSheet("background-image:url(:/folder/show.bmp);"); //設置背景圖片 ``` 此外,還有一些很有意思的方法,比如用 setHtml(),insetHtml()這種用 HTML 語言的方式來指定的等等,大家可以多查查幫助文檔搜索一下 。 4\.具體例子 ``` //設置為固定顏色 QPalette pal = pWidget-&gt;palette(); pal.setColor(QPalette::Background, QColor(0,0,0)); //黑色 pWidget-&gt;setPalette( pal ); //背景圖片 QPalette pal = pWidget-&gt;palette(); pal.setBrush( QPixmap(圖片文件名) ); //黑色 pWidget-&gt;setPalette( pal ); ```
                  <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>

                              哎呀哎呀视频在线观看