2010-04-19 18 views

Respuesta

6

En Designer, seleccione el botón OK o Cancel. A continuación, abra el editor de propiedades y desplácese hacia abajo hasta la sección QDialogButtonBox. A continuación, puede expandir el elemento standardButtons para ver los distintos botones disponibles. Otras propiedades, como la propiedad centerButtons, también están disponibles.

Sin embargo, el diseñador le da muy poco control sobre la caja del botón.

En el código, puede hacer muchas otras cosas, como cambiar el texto que aparece en los "botones estándar". Desde el 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); 

Mientras le das al botón de cuadro de un nombre en el diseñador, se puede establecer estas propiedades en el código.

+0

estoy adivinando el código de la forma y almacenado en algún archivo para que pueda entrar en ese archivo y cambiar las propiedades del botón que necesito? –

+1

No edite el archivo generado. Existen diferentes formas de trabajar con el código generado documentado en la página [Creación y uso de componentes para Qt Designer] (http://doc.trolltech.com/4.6/qtdesigner-components.html). –

+0

@KalebPederson Si agrego el cuadro de botón Aceptar/Cancelar, no se puede hacer clic en los botones internos. –

1

Estoy escribiendo esta respuesta para la comunidad de Python. Estoy usando PySide y enfrenté un problema similar. Tengo un QDialogButtonBox y me gustaría tener mis propios botones en lugar de los predeterminados.

Estoy usando PySide, que es más o menos la réplica exacta del código C++, así que creo que otros desarrolladores de C++ también pueden obtener algo de él.

Aquí cómo iba a hacer eso:

 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) 

Me continuación, insertar mi caja de botones a mi disposición como horneadas:

layout.addWidget(ok_cancel_button, 1, 1) 

Ahora más adelante en mi código que pueda hacer nada con mi botón . Vamos a cambiar su nombre:

my_ok_button.setText("Some Other Name") 

Así las cosas a tener en cuenta aquí es que:

  • debe establecer el papel de los botones en la addButton() método si desea utilizar funcionalidades dadas por botones estándar. P.ej. Si
    desea hacer algo como lo siguiente, debe tener los roles del botón establecidos. se genera

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

More information can be found here.

Cuestiones relacionadas