1 回答

TA貢獻(xiàn)2016條經(jīng)驗(yàn) 獲得超9個(gè)贊
解釋:
問(wèn)題是您使用了同一個(gè) QSpacerItem 2 次,當(dāng) QDialog 關(guān)閉時(shí),因?yàn)樗且粋€(gè)局部變量,它將被刪除,Qt 也會(huì)消除內(nèi)部對(duì)象,在這種情況下,QSpacerItem 將被雙重消除導(dǎo)致“分段錯(cuò)誤”。
解決方案:
您必須創(chuàng)建 2 個(gè) QSpacerItem:
# ...
hbox = QHBoxLayout()
hbox.addItem(spacer)
self.option_exp = QLabel('OR')
hbox.addWidget(self.option_exp)
hbox.addItem(QSpacerItem(10,10,QSizePolicy.Expanding,QSizePolicy.Expanding))
vbox.addLayout(hbox)
# ...
另一種選擇是不使用 QSpacerItem 而是設(shè)置一個(gè)拉伸因子:
# ...
hbox = QHBoxLayout()
hbox.addStretch()
self.option_exp = QLabel('OR')
hbox.addWidget(self.option_exp)
hbox.addStretch()
vbox.addLayout(hbox)
# ...
或者不使用 QHBoxLayout 并通過(guò)設(shè)置對(duì)齊方式將 QLabel 直接設(shè)置為 QVBoxLayout:
# ...
self.table_list = QListWidget()
self.table_list.setSelectionMode(QAbstractItemView.SingleSelection)
vbox.addWidget(self.table_list)
self.option_exp = QLabel('OR')
vbox.addWidget(self.option_exp, alignment=Qt.AlignHCenter)
self.new_name = QLineEdit(placeholderText='Enter New Source Name')
vbox.addWidget(self.new_name)
# ...
添加回答
舉報(bào)