Red de conocimiento informático - Problemas con los teléfonos móviles - qt establece automáticamente el número de clave

qt establece automáticamente el número de clave

Mientras desarrollaba la aplicación, encontré un problema con los nombres de las pestañas. Quiero crear una nueva pestaña dinámicamente cuando hago clic en el botón (Nuevo).

Creo un nuevo archivo usando:

bool MainWindow::toolbarNewFile()

{

QWidget *page = new QWidget ;

QTextEdit *codeEditor = nuevo QTextEdit;

QGridLayout *layout = nuevo QGridLayout;

diseño->addWidget(codeEditor);

page->setLayout(layout);

tab_widget->addTab(page, "File");

devuelve verdadero;

}

Pero todo los nombres de las pestañas son "ARCHIVO"

Cómo configurar esto en el número del nombre de la pestaña. Cuando creo una nueva pestaña, automáticamente establece el número de pestaña de la siguiente manera.

Archivo-1, Archivo-2, Archivo-3

Intenté configurar el contador i=0 pero en addTab(page, "File-"+ i++); trabajar.

Estoy trabajando en una aplicación y tengo problemas con los nombres de las pestañas. Quiero crear una nueva pestaña dinámicamente cuando hago clic en el botón (NUEVO).

Con esta función, creé un nuevo archivo:

bool MainWindow::toolbarNewFile()

{

QWidget *page = nuevo QWidget;

QTextEdit * codeEditor = nuevo QTextEdit;

QGridLayout *layout = nuevo QGridLayout;

diseño->addWidget(codeEditor);

page->setLayout (diseño);

tab_widget->addTab(página, "Archivo");

devuelve verdadero;

}

Pero los nombres de todas las pestañas son "ARCHIVO"

Cómo configurar el número en el nombre de la pestaña. Cuando creo una nueva pestaña, el número de la pestaña se configura automáticamente así.

Archivo-1, Archivo-2, Archivo-3

Intenté configurar el contador i=0 y configurar el contador en addTab(page," File-"+ i++) ; i=0; inútil.

Dirección original: /questions/14692433

2022-01-02 10:01

Respuesta satisfactoria

Necesitas convertir el entero Convertir a QString para que pueda concatenarse en un QString. Aún mejor, puede utilizar la función QString::arg, que da como resultado un código fácilmente legible y potencialmente más rápido:

tab_widget->addTab(page, QString("File-%1") .arg(i++ ));

¡El campo de i en la clase se inicializa a 1!

Necesita convertir el número entero a un QString para poder concatenarlo a un QString.

Aún mejor, puede utilizar la función QString::arg, que da como resultado un código fácilmente legible y potencialmente más rápido:

tab_widget->addTab(page, QString("File-%1"). arg(i++ ));

donde i es un campo de la clase inicializado a 1.

Más preguntas y respuestas relacionadas

Cómo cambiar la posición de la pestaña en PyQt4 (QTabWidget))

Bien, encontré mi problema. Puse self.ui.tabWidget.tabCloseRequested.connect (self.onTabClose) en el mismo método que crea la nueva pestaña. Esto significa que si se crean 5 pestañas, tabCloseReqested se activará 5 veces cuando se cierre la pestaña. En lugar de eso, debería poner esta declaración de conexión en el inicio de mi clase para que solo se defina una vez y solo se active una vez cuando se cierra la pestaña. Ok, encontré el problema yo mismo. Puse self.u...

¿Cómo configurar QWidget en el encabezado QTabWidget?

Debes usar la función setTabButton: void QTabBar :: setTabButton (int index, ButtonPosition position, QWidget * widget) para configurar el widget en la etiqueta de índice. Dependiendo de la posición, el widget se colocará a la izquierda o a la derecha. Oculte cualquier widget configurado previamente. La barra de pestañas tomará posesión de los widgets, por lo que cuando se destruya, la barra de pestañas eliminará todos los widgets configurados allí a menos que vuelva a mostrar esos widgets individualmente después de configurar otros widgets (o 0). Esta característica se introdujo en Qt 4.5. Esto es similar a QTabWidget y QT...

¿Es posible hacer referencia a las pestañas individuales de un QTabWidget a través de etiquetas de pestañas? (¿Es posible hacer referencia a las pestañas individuales de un QTabWidget por el número de pestaña?)

Si desea que la pestaña tenga un índice específico, use widget(): QWidget* tab = tabWidget-> widget( index ); Si desea que la pestaña tenga un índice específico, use widget(): QWidget* tab = tabWidget-> widget( index );

¿Cómo configurar el diseño en QTabWidget? (¿Cómo configurar el diseño de las pestañas en QTabWidget?)

Siempre estará en la esquina superior izquierda. Puede agregar otro widget a su widget y centrarlo, o configurar el widget al tamaño de la pestaña y centrar su contenido. Puede utilizar el método setLayout de QWidget para configurar el diseño del widget. Siguiendo la idea de @Satus, creé un nuevo QFrame, configuré el tamaño mínimo a las dimensiones de myTabWidget, configuré el diseño horizontal y agregué myCustomWidget en él.

QT: Escape from QTabWidget(QT: Escape from QTabWidget)

De doc: void QWidget::setTabOrder ( QWidget * primero, QWidget * segundo ) [estático] en los primeros lugares el segundo widget en la ventana en orden de enfoque.

Tenga en cuenta que, dado que el orden de tabulación del segundo widget ha cambiado, debe ordenarse de la siguiente manera: setTabOrder(a, b); // a b setTabOrder(b, c); // a b to c setTabOrder(c, d); // a a b a c a d...

QTabWidget rechaza el cambio de tamaño automático

Cuando el tamaño de la ventana aumenta, ¿se copiará Qt Widget? ?Creo que es un duplicado porque si diseñas un diseño para cada elemento en el árbol de widgets, mis pruebas en Qt 4.7 me dan el siguiente resultado, con mi Inspector de objetos a la derecha. Simplemente dejé caer las piezas y las escribí sin cambiar ninguna dimensión para expandirlas, ¡ya que eso era completamente innecesario! A la izquierda está el archivo ejecutable en ejecución, a la derecha está la captura de pantalla del creador. Aquí está mi interfaz de usuario: MainWindow

Qt QTabWidget - Automáticamente establecer número de nombre de pestaña

Necesita convertir el número entero a QString para poder concatenarlo a QString. Aún mejor, puede usar la función QString::arg, que da como resultado un código fácilmente legible y potencialmente más rápido: tab_widget->addTab(page, QString("File-%1").arg(i++)); la clase se inicializa a 1. Aún mejor, también puedes convertir un número entero en un QString.

¿Cómo obtener el nombre de pestaña actual de QTabWidget en Qt? )

Como respondió Chris Kawa aquí, este es el nombre del objeto del widget actual. Del código puedo obtenerlo así: QString currentTabName = tabWidget->currentWidget()->objectName(); NOTA: Como sugiere la documentación, asegúrese de que nullptr esté marcado cuando use tabWidget->currentWidget(). Como respondió Chris Kawa aquí, este es el nombre del objeto del widget actual. f....

¿Cómo configurar solo una pestaña en un QTabWidget que no se puede mover en Qt? (¿Cómo configurar una pestaña en un QTabWidget para que no se pueda mover en Qt?)

Mirando el código fuente de QTabBar (un elemento secundario de QTabBar), parece que esto no es posible. Todas las pestañas tienen un solo bien mueble. Sin embargo, puede intentar esto: subclase QTabBar y capturar el evento del mouse hacia abajo para habilitar o deshabilitar el movimiento de la pestaña antes de que comience el arrastre. Similar a lo siguiente: void MyTabBar::mousePressEvent(QMouseEvent *event) { // Excepto la primera pestaña, todas las pestañas se pueden mover setMovable(tabAt(event->pos()) != 0 ...

Estilo de QTabWidget(Styling QTabWidget)

Parece que el rectángulo de enfoque es manejado por el QStyle (que no debe confundirse con la hoja de estilo) que se está utilizando. Puede escribir una subclase QStyle y aplicarla a su QTabWidget. Las subclases deben anular el método drawControl(), que no hace nada si el rectángulo de enfoque se está dibujando actualmente.

La apariencia de la subclase es la siguiente NoFocusRectStyle.h #ifndef NOFOCUSRECTSTYLE_H #define NOFOCUSRECTSTYLE_H #include // o subclase QStyle...