Tôi đang gặp khó khăn khi nhận tiện ích con trong QDialog được tự động thay đổi kích cỡ khi hộp thoại được thay đổi kích thước.PyQt: nhận tiện ích để tự động thay đổi kích thước trong QDialog
Trong chương trình sau, văn bản tự động thay đổi kích thước nếu bạn thay đổi kích thước cửa sổ chính. Tuy nhiên, vùng văn bản trong hộp thoại vẫn có cùng kích thước khi hộp thoại được thay đổi kích thước.
Có cách nào làm cho vùng văn bản trong hộp thoại thay đổi kích thước tự động không? Tôi đã thử sử dụng setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored)
trên hộp thoại chính nó và hai vật dụng bên trong, nhưng điều đó dường như không có hiệu lực.
Tôi đang sử dụng phiên bản Qt 3.3.7 và PyQt phiên bản 3.5.5-29 trên openSuSE 10.2, nếu điều đó có liên quan.
import sys
from qt import *
# The numbers 1 to 1000 as a string.
NUMBERS = ("%d " * 1000) % (tuple(range(1,1001)))
# Add a textarea containing the numbers 1 to 1000 to the given
# QWidget.
def addTextArea(parent, size):
textbox = QTextEdit(parent)
textbox.setReadOnly(True)
textbox.setMinimumSize(QSize(size, size*0.75))
textbox.setText(NUMBERS)
class TestDialog(QDialog):
def __init__(self,parent=None):
QDialog.__init__(self,parent)
self.setCaption("Dialog")
everything = QVBox(self)
addTextArea(everything, 400)
everything.resize(everything.sizeHint())
class TestMainWindow(QMainWindow):
def __init__(self,parent=None):
QMainWindow.__init__(self,parent)
self.setCaption("Main Window")
everything = QVBox(self)
addTextArea(everything, 800)
button = QPushButton("Open dialog", everything)
self.connect(button, SIGNAL('clicked()'), self.openDialog)
self.setCentralWidget(everything)
self.resize(self.sizeHint())
self.dialog = TestDialog(self)
def openDialog(self):
self.dialog.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
mainwin = TestMainWindow(None)
app.setMainWidget(mainwin)
mainwin.show()
app.exec_loop()