Tengo un problema con QTabBar/QTabWidget. Esto es lo que mi programa se parece por el momento, el uso de QTabBar:Widget en una QTabBar con marco no deseado
Como se puede ver, hay una línea entre el antiestético QTabBar y la QScrollArea por debajo de ella. Esta línea es parte del marco de la QScrollArea, de la que no puedo deshacerme simplemente, porque es necesaria en los otros tres lados. Me doy cuenta de que podría usar QTabWidget, pero luego tendría que crear un widget para cada pestaña, lo cual no es posible aquí: el contenido de QScrollArea cambia según la pestaña seleccionada, pero solo hay un widget QScrollArea. (Duplicación de que cada vez que se crea una nueva pestaña haría que sus propios problemas.)
Así que ¿alguien sabe una forma de ya sea:
(i) contar la QScrollArea para dibujar un marco sin la línea superior; o
(ii) use el mismo widget para cada pestaña en un QTabWidget?
Actualización 3 Para otro enfoque, vea mi respuesta a continuación.
Actualización 1 He implementado la sugerencia de zvezdi, y la línea antiestética ha desaparecido:
Esta es una mejora. Pero no es correcto. Mire los espacios entre las barras de desplazamiento y el borde. A la derecha, son dos píxeles en lugar de uno; en la parte inferior, es tres píxeles. Y el espacio a la derecha entre el borde QScrollArea y el borde del widget principal es un píxel demasiado grande. Esto se debe al estilo de borde de QTabWidget, que estoy perdiendo la cordura tratando de cambiar. Si digo:
MyTabWidget -> setStyleSheet ("QTabWidget::pane { margin: 0px,0px,0px,0px }") ;
entonces los márgenes parecen tener razón, pero las fronteras desaparecen:
Si digo:
MyTabWidget -> setStyleSheet ("QTabWidget::pane { "
" margin: 0px,0px,0px,0px;"
" border: 1px solid darkgray;"
"}") ;
entonces estoy casi de vuelta donde comencé:
Si intento de remediar esto con:
ApplicationTabWidget -> setStyleSheet ("QTabWidget::pane { "
" margin: 0px,0px,0px,0px;"
" border: 1px solid darkgray;"
" border-top: 0px;"
"}") ;
, de nuevo estoy burlado de mis dolores:
Actualización 2 Si olvido setStyleSheet
y a su vez sólo documentMode
en , esto es lo que obtengo:
Por favor, alguien dime que estoy siendo estúpido, y que hay una solución perfectamente simple para todo esto.
¡Esto parece prometedor! No puedo hacerlo exactamente de esta manera, porque he subclasificado QScrollArea (por lo que los contenidos realmente cambian). Pero intentaré crear cada pestaña con un widget ficticio y mover el QScrollArea subcategoría al widget ficticio de la pestaña actual. – TonyK
Implementé su sugerencia, y definitivamente es una mejora. ¡Pero todavía no está bien! He actualizado mi pregunta con muchas capturas de pantalla. – TonyK
@TonyK: ha intentado convertir el documentMode de QTabWidget en – zkunov