2010-03-03 22 views
1

我試圖讓每個小部件都隨着窗口大小的變化進行縮放。我有一個主窗口,每個選項卡都有一個QTabWidget和QWidget持有者。然後我有一個自定義小部件,它具有一個獨立的.ui文件,可以用來填充選項卡的QWidget空間。問題是,我無法獲取QWidget的內容,只能看到主窗口的選項卡和QWidget。另外,我注意到如果我將自定義小部件的ui-> setupUi()參數從「this」更改爲「parent」,則問題得到解決,並且自定義小部件將正確縮放。唯一的問題是,當我這樣做時,沒有任何按鈕可以工作。應用程序輸出讀出「No Slot」找到按鈕的錯誤。什麼是做這種連接的正確方法?將自定義小部件連接到QWidgetTab以進行大小調整

編輯:示例代碼

MainWindow:: ... 
{ 
    //assign customWidget to widget placeholder on tabWidget. 
    //holder is just a blank widget set in gridLayout on tab widget. 
    CustomWidget * customWidget = new CustomWidget(ui->customWidgetHolder); 

    setCentralWidget(ui->tabWidget); 
    //This gets the sizing I want with the tabs, but 
    //doesn't pass it past the customWidgetHolder. 
} 

回答

2

從我undertand,你需要使用一個佈局,爲您的自定義窗口小部件的標籤

QTabWidget* tabWidget = new QTabWidget(); 
    QWidget* tab = new QWidget(); 
    QVBoxLayout* verticalLayout = new QVBoxLayout(tab); 

    YourWidget* widget = new YourWidget(tab); 
    verticalLayout->addWidget(widget); 

    tabWidget->addTab(tab, QString()); 

內,但你需要更具體(代碼示例?)關於您所做的SIGNAL/SLOT連接,如果您想回答這個問題。

+0

QVBoxLayout * vLayout = new QVBoxLayout(ui-> customWidgetHolder); customWidget = new CustomWidget(ui-> deptWidgetHolder); vLayout-> addWidget(customWidget); 工作就像一個魅力,謝謝! – 2010-03-04 22:24:44

相關問題