我有一個QMainWIndow,其中有一個小部件,其中一個是QTableView。如何根據窗口大小重新調整QMainWindow的內容
Main WIndow可調整大小。
如何自動調整窗口的內容,字體和所有內容,即當窗口被調整大小時,其內容也應該自動調整大小?
我很感激幫助,謝謝。
我有一個QMainWIndow,其中有一個小部件,其中一個是QTableView。如何根據窗口大小重新調整QMainWindow的內容
Main WIndow可調整大小。
如何自動調整窗口的內容,字體和所有內容,即當窗口被調整大小時,其內容也應該自動調整大小?
我很感激幫助,謝謝。
你應該把所有的小部件放入一個佈局中,當用戶對QMainWindow的大小進行任何改變時,佈局會自動調整你的小部件在QMainWindow中的大小,你可以通過Qt Creator IDE和Coding 。
UPDATE:
如果Qt Creator中添加布局,佈局自動MOC文件,並沒有必要在他們的行爲通過編碼由用戶所做的任何更改編碼。
而是通過編碼在類的構造函數:
QVBoxLayout *layout = new QVBoxLayout(parent);
layout->addWidget(widget1);
layout->addWidget(widget2);
layout->addWidget(widget3);
this->setLayout(layout);
但如果想改變QLabel的字體,這是由resizeEvent在QMainWindow中在主窗口的大小的任何變化進行的,因此,resizeEvent觸發,所以您使用此代碼:
在mainwindow.h聲明resizeEvent:
protected:
void resizeEvent(QResizeEvent* event);
在mainwindow.cpp實施resizeEvent:
void MainWindow::resizeEvent(QResizeEvent *event)
{
MainWindow::resizeEvent(event);
if(this)
{
// QLabel process
}
}
我有一個內部有3個小工具的垂直框。我應該向主WIndow添加布局嗎?如果是這樣,我應該選擇什麼佈局?我不想影響它現在的樣子。 – user1173240
我做到了。沒有幫助。沒有任何字體或內容的大小調整。 – user1173240
這很簡單,我不明白你想做什麼?你想改變你的字體大小?和你的小部件內容?這意味着內容?你使用哪個小部件?對於字體大小的變化,你必須使用QFont字體(「Arial」); 字體。參考setBold(真); this-> setFont(font); this-> setAlignment(Qt :: AlignCenter); –
你把你的小部件到一個佈局? – hank
調整字體大小需要手動完成。但是這非常棘手,因爲調整字體大小可能會觸發窗口小部件和主窗口的新大小。 – UmNyobe
@Hank - 我在窗口中有一個垂直框。在那個窗口中,我有3個小部件,1個使用網格佈局,並有QLablels,另一個是使用TableLayout的TableView。如果表格被調整大小,這些內容也應該調整大小...請告知。 – user1173240