2010-04-19 185 views

回答

6

在Designer中,選擇OKCancel按鈕。然後打開屬性編輯器並向下滾動到QDialogButtonBox部分。然後,您可以展開standardButtons項目以查看可用的各種按鈕。其他屬性,如centerButtons屬性也可用。

但是,設計師很少控制按鈕盒。

在代碼中,您可以執行許多其他操作,例如更改「標準按鈕」上顯示的文本。從documentation

findButton = new QPushButton(tr("&Find")); 
findButton->setDefault(true); 

moreButton = new QPushButton(tr("&More")); 
moreButton->setCheckable(true); 
moreButton->setAutoDefault(false); 

buttonBox = new QDialogButtonBox(Qt::Vertical); 
buttonBox->addButton(findButton, QDialogButtonBox::ActionRole); 
buttonBox->addButton(moreButton, QDialogButtonBox::ActionRole); 

只要你給按鈕盒中的名稱設計師,你可以在代碼中設置這些屬性。

+0

我猜測的形式的代碼,並存儲在一些文件,所以我可以進入該文件並更改我需要的按鈕屬性? – 2010-04-19 23:08:01

+1

不要編輯生成的文件。在[爲Qt Designer創建和使用組件](http://doc.trolltech.com/4.6/qtdesigner-components.html)頁面上記錄的生成代碼有不同的處理方式。 – 2010-04-20 04:13:02

+0

@KalebPederson如果我追加確定/取消按鈕框,內部按鈕不能被點擊。 – 2017-08-23 10:28:32

1

我正在爲Python社區寫這個答案。我正在使用PySide並面臨類似的問題。我有一個QDialogBu​​ttonBox,我想有自己的按鈕,而不是默認的按鈕。我使用的PySide或多或少是C++代碼的確切副本,所以我相信其他C++開發人員也可以從中獲得一些東西。

在這裏,我該怎麼做:

 my_ok_button = QtGui.QPushButton("My Ok Button") 
     my_cancel_button = QtGui.QPushButton("My Cancel Button") 
     ok_cancel_button = QtGui.QDialogButtonBox(QtCore.Qt.Horizontal) 
     ok_cancel_button.addButton(my_ok_button, QtGui.QDialogButtonBox.ButtonRole.AcceptRole) 
     ok_cancel_button.addButton(my_cancel_button, QtGui.QDialogButtonBox.ButtonRole.RejectRole) 

我會那麼我的按鈕盒插入到我的佈局像ususal:

layout.addWidget(ok_cancel_button, 1, 1) 

現在,後來在我的代碼,我可以用我的按鈕做什麼。讓我們改變它的名字:

my_ok_button.setText("Some Other Name") 

那麼接下來的事情,這裏要注意的是:

  • 必須設置按鈕的作用,在Add按鈕()方法,如果你 要使用給定功能通過標準按鈕。例如。如果你想
    希望做下面的事情,你需要設置按鈕角色 。產生

    ok_cancel_button.accepted.connect(self.ok_method_handler) ok_cancel_button.rejected.connect(self.close)

More information can be found here.