2015-06-25 18 views

回答

2

裏面的Qt Desiger,你必須創建一個QLabel,然後「推廣」它的ClickableLabel類。

要做到這一點,請右鍵單擊在窗口小部件中實例化的QLAbel對象,選擇「Promote widget ...」並指定類名和定義它的頭文件的路徑。

請注意,ClickableLabel的頭文件和源文件都必須是Qt項目的一部分。

這應該只是工作!

+0

嗨感謝您的回答,實際上我的用戶界面包含10個QLabel項目,使用上述方法應創建10個對應於每個Qlabel的類別 – Haris

+0

您需要提升10'QLabel',創建10個'ClickableLabel'對象。現在,如果你真的有10個對象,你也可以在.ui中留下一個空的佈局,並使用'for'循環從類構造函數(實例化.ui的那個)中編程添加標籤。然後你直接創建'ClickableLabel'對象並將它們添加到空白的佈局(使用'addWidget')。 – jpo38

+0

嗨,感謝您的重播。 – Haris

1

使用您的鏈接提供的,我做我的main()如下:

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    MainWindow *w = new MainWindow; 
    ClickableLabel *MyLable = new ClickableLabel("Amol",w); 
    MyLable->show(); 
    w->show(); 

    return a.exec(); 
} 

重要的一點是,當您自定義窗口小部件,你需要通過parent pointer到自定義窗口小部件,也就是MainWindow這裏。一旦你自定義小部件,你需要以編程方式提供所有的屬性。請在您的項目中爲ClickableLabel類別分別添加.h.cpp。 希望這對你有幫助。

1

我想,UI設計指的是Qt Creator的...

可以促進標準QLabel可點擊標籤方式如下:

  1. 創建ClickableLabel -class。

  2. 在QT Creator中創建標準的QLabel-widget。

  3. 單擊表單編輯器中新QLabel-widget頂部的鼠標右鍵並選擇「提升到」。

  4. 將先前創建的ClickableLabel類的名稱輸入到Promoted類名稱字段中。該對話框還會根據類的名稱自動填充頭文件字段。

  5. 按下Add按鈕。

  6. 從列表中選擇一個新的升級班,然後按「升級」按鈕。

現在,在步驟2上創建的QLabel-widget實際上是ClickableLabel-object。