簡體   English   中英

如何使用button.clicked()事件在Qt中調用創建的.ui設計表單?

[英]How to call created .ui design form in Qt with button.clicked() event?

我在Qt中很新,我想問一下如何調用創建的.ui設計器表單與MainWindow中的PushButton連接。

我做了什么:1。創建一個新的.ui設計表單(Forms.right click - > Add New - > Qt Designer Form)到當前項目。 2.在.ui表單中創建了一個about對話框。 3.在MainWindow中創建一個插槽PushButton.clicked()。

對於所有在Qt中編程的人,請幫我解決這個問題,將PushButton與.ui表單連接起來,這樣PushButton就可以調用/顯示在.ui中創建的表單。

感謝您的關注。

在Qt的文檔中解釋了使用.ui文件: http//doc.qt.io/archives/qt-4.7/designer-using-a-ui-file.html

簡介:處理.ui文件的最簡單方法是在編譯時通過uic (用戶界面編譯器)運行它。 如果.ui文件包含在項目(.pro)文件中,則會自動完成此操作。 (“添加新”可能在您的情況下自動執行此操作。)然后,您只需要在源文件中包含生成的C ++頭文件。 它的名字應該是“ui_nameoftheoriginaluifile.hpp”。 當然,之后您需要實例化.hpp文件中定義的表單。

編輯添加:

從可讀性開始,您的代碼有幾個問題。 我不知道你以前是否使用過面向對象的語言,但C ++中一個非常基本的規則是用大寫字母開始類名,以便更容易區分對象和其他變量。 因此,班級名稱應為“關於”,“父母”等。

編譯錯誤是由使用“about”而不是“ui_about.hpp”文件中實際使用的類的名稱 - “MainWindow”引起的。 (這取決於您在.ui文件中使用的表單的名稱。)

如果您正在使用Qt Creator:按住Ctrl鍵並單擊include指令中文件“ui_about.h”的名稱。 這將打開它進行檢查。 試着弄清楚它是如何工作的。

您還沒有將opDialog()函數定義為“parent.cpp”中“父”類的成員,這會導致另一個編譯時錯誤。

您也不應該使用QMainWindow進行關於對話框。 QMainWindow應該是你的應用程序的主窗口 - 不應再有它的實例。

about,about.h:

namespace Ui {
    class MainWindow;
}

class about : public QMainWindow {
    Q_OBJECT
public:
    about(QWidget *parent = 0);
    ~about();

protected:
    void changeEvent(QEvent *e);

private:
    Ui::MainWindow *ui;
};

而about.cpp的開頭:

#include "about.h"
#include "ui_about.h"

about::about(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

我很抱歉先生,如果我可以在很長一段時間沒有登錄后立即回復,因為我必須在我的大學完成我的面部識別項目。 順便說一句,我在嘗試了很多“試煉和錯誤”之后解決了我的問題,現在我可以做得很好。 我已經發布了我的項目答案“如何使用button.clicked()事件在Qt中調用創建的.ui設計表單?” 在我的個人博客中。

這是帖子鏈接: http//hxr99.blogspot.com/2011/12/how-to-call-ui-design-form-with.html 還有一個用於調用窗口的示例項目的下載鏈接。 也許它可以幫助世界各地的人們從Qt編程開始。

我非常感謝你幫助我解決我的問題,對不起我的英語是不是很好。 聖誕快樂和新年快樂。 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM