I've submitted bug 1040 for this. I just tested, and it's still an issue
with 1.0.8.

http://bugs.pyside.org/show_bug.cgi?id=1040

Ben

On Sun, Oct 30, 2011 at 6:46 PM, Ricardo Manriquez <
[email protected]> wrote:

> Thank you for your insight I hadn't noticed the brush overwritting
> problem. I also had attached the Ui file but the name and extension
> got mangled. Here I'm posting the full Ui file in plain text, with the
> information your are giving me I can work around the bug and finish my
> app but I hope that with your bug it can be solved for everyone.
>
>   Thank you a lot for your time and good will
>     Best regards
>      Ricardo ManrĂ­quez
>
> <?xml version="1.0" encoding="UTF-8"?>
> <ui version="4.0">
>  <class>MainWindow</class>
>  <widget class="QMainWindow" name="MainWindow">
>  <property name="geometry">
>   <rect>
>    <x>0</x>
>    <y>0</y>
>    <width>236</width>
>    <height>97</height>
>   </rect>
>  </property>
>  <property name="windowTitle">
>   <string notr="true">MainWindow</string>
>  </property>
>  <widget class="QWidget" name="widget">
>   <layout class="QHBoxLayout" name="horizontalLayout">
>    <item>
>     <widget class="QTableWidget" name="tableWidget">
>      <row>
>       <property name="text">
>        <string notr="true">1</string>
>       </property>
>      </row>
>      <row>
>       <property name="text">
>        <string notr="true">2</string>
>       </property>
>      </row>
>      <column>
>       <property name="text">
>        <string notr="true">1</string>
>       </property>
>      </column>
>      <column>
>       <property name="text">
>        <string notr="true">2</string>
>       </property>
>      </column>
>      <item row="0" column="0">
>       <property name="text">
>        <string notr="true">Black FG Red BG</string>
>       </property>
>       <property name="background">
>        <brush brushstyle="SolidPattern">
>         <color alpha="255">
>          <red>255</red>
>          <green>0</green>
>          <blue>0</blue>
>         </color>
>        </brush>
>       </property>
>      </item>
>      <item row="0" column="1">
>       <property name="text">
>        <string notr="true">White FG Red BG</string>
>       </property>
>       <property name="background">
>        <brush brushstyle="SolidPattern">
>         <color alpha="255">
>          <red>255</red>
>          <green>0</green>
>          <blue>0</blue>
>         </color>
>        </brush>
>       </property>
>       <property name="foreground">
>        <brush brushstyle="NoBrush">
>         <color alpha="255">
>          <red>255</red>
>          <green>255</green>
>          <blue>255</blue>
>         </color>
>        </brush>
>       </property>
>      </item>
>      <item row="1" column="0">
>       <property name="text">
>        <string notr="true">Yellow FG Red BG</string>
>       </property>
>       <property name="background">
>        <brush brushstyle="SolidPattern">
>         <color alpha="255">
>          <red>255</red>
>          <green>0</green>
>          <blue>0</blue>
>         </color>
>        </brush>
>       </property>
>       <property name="foreground">
>        <brush brushstyle="NoBrush">
>         <color alpha="255">
>          <red>255</red>
>          <green>255</green>
>          <blue>0</blue>
>         </color>
>        </brush>
>       </property>
>      </item>
>      <item row="1" column="1">
>       <property name="text">
>        <string notr="true">Yellow FG Red BG</string>
>       </property>
>       <property name="background">
>        <brush brushstyle="SolidPattern">
>         <color alpha="255">
>          <red>255</red>
>          <green>0</green>
>          <blue>0</blue>
>         </color>
>        </brush>
>       </property>
>       <property name="foreground">
>        <brush brushstyle="NoBrush">
>         <color alpha="255">
>          <red>255</red>
>          <green>255</green>
>          <blue>0</blue>
>         </color>
>        </brush>
>       </property>
>      </item>
>     </widget>
>    </item>
>   </layout>
>  </widget>
>  </widget>
>  <resources/>
>  <connections/>
> </ui>
>
> On 29/10/2011, Ben Breslauer <[email protected]> wrote:
> > I can confirm this problem on my system. Can you send along the .ui file
> > used to create table? I can submit a bug on your behalf once I have that
> > file.
> >
> > The problem seems to be a bug in pyside-uic. It creates a brush for the
> BG,
> > then replaces it with the FG brush, and then applies that brush to both
> the
> > BG and FG. The background is white in the 2-4 cells because the FG brush
> > style is set to QtCore.Qt.NoBrush, probably because text only uses the
> > color, not the brush type (i.e. text cannot have a diagonal pattern, or a
> > gradient). Since this FG brush gets applied to the background, the
> > background defaults to white. When the text color is not specified (i.e.
> it
> > defaults to black), then a FG brush is not created and the background
> shows.
> > I expect that if you were to manually specify the text color as black,
> then
> > the background color would always be white.
> >
> > Ben
> >
> > On Sun, Oct 16, 2011 at 9:10 PM, Ricardo Manriquez <
> > [email protected]> wrote:
> >
> >> The problem goes like this I'm trying to get a table which looks like
> >> a semaphore so for the dark colors I chose white text in Qt 4.7 using
> >> C++ It works correctly just as It shows in Designer but when I execute
> >> it with pyside the text color disables the background color. If chose
> >> black as background and white as foreground the result is a white cell
> >> with white text. The problem shows up in windows and linux.
> >>
> >> Please help me file a bug if it's necessary
> >>
> >> I'm attaching my code here, generated by pyside-uic
> >>
> >> # -*- coding: utf-8 -*-
> >>
> >> # Form implementation generated from reading ui file 'test.ui'
> >> #
> >> # Created: Sun Oct 16 21:58:39 2011
> >> #      by: pyside-uic 0.2.13 running on PySide 1.0.7
> >> #
> >> # WARNING! All changes made in this file will be lost!
> >>
> >> from PySide import QtCore, QtGui
> >>
> >> class Ui_MainWindow(object):
> >>     def setupUi(self, MainWindow):
> >>         MainWindow.setObjectName("MainWindow")
> >>         MainWindow.resize(236, 97)
> >>         MainWindow.setWindowTitle("MainWindow")
> >>         self.widget = QtGui.QWidget(MainWindow)
> >>         self.widget.setObjectName("widget")
> >>         self.horizontalLayout = QtGui.QHBoxLayout(self.widget)
> >>         self.horizontalLayout.setObjectName("horizontalLayout")
> >>         self.tableWidget = QtGui.QTableWidget(self.widget)
> >>         self.tableWidget.setObjectName("tableWidget")
> >>         self.tableWidget.setColumnCount(2)
> >>         self.tableWidget.setRowCount(2)
> >>         item = QtGui.QTableWidgetItem()
> >>         self.tableWidget.setVerticalHeaderItem(0, item)
> >>         self.tableWidget.verticalHeaderItem(0).setText("1")
> >>         item = QtGui.QTableWidgetItem()
> >>         self.tableWidget.setVerticalHeaderItem(1, item)
> >>         self.tableWidget.verticalHeaderItem(1).setText("2")
> >>         item = QtGui.QTableWidgetItem()
> >>         self.tableWidget.setHorizontalHeaderItem(0, item)
> >>         self.tableWidget.horizontalHeaderItem(0).setText("1")
> >>         item = QtGui.QTableWidgetItem()
> >>         self.tableWidget.setHorizontalHeaderItem(1, item)
> >>         self.tableWidget.horizontalHeaderItem(1).setText("2")
> >>         brush = QtGui.QBrush(QtGui.QColor(255, 0, 0))
> >>         brush.setStyle(QtCore.Qt.SolidPattern)
> >>         item = QtGui.QTableWidgetItem()
> >>         item.setBackground(brush)
> >>         self.tableWidget.setItem(0, 0, item)
> >>         self.tableWidget.item(0, 0).setText("Black FG Red BG")
> >>         brush = QtGui.QBrush(QtGui.QColor(255, 0, 0))
> >>         brush.setStyle(QtCore.Qt.SolidPattern)
> >>         brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
> >>         brush.setStyle(QtCore.Qt.NoBrush)
> >>         item = QtGui.QTableWidgetItem()
> >>         item.setBackground(brush)
> >>         item.setForeground(brush)
> >>         self.tableWidget.setItem(0, 1, item)
> >>         self.tableWidget.item(0, 1).setText("White FG Red BG")
> >>         brush = QtGui.QBrush(QtGui.QColor(255, 0, 0))
> >>         brush.setStyle(QtCore.Qt.SolidPattern)
> >>         brush = QtGui.QBrush(QtGui.QColor(255, 255, 0))
> >>         brush.setStyle(QtCore.Qt.NoBrush)
> >>         item = QtGui.QTableWidgetItem()
> >>         item.setBackground(brush)
> >>         item.setForeground(brush)
> >>         self.tableWidget.setItem(1, 0, item)
> >>         self.tableWidget.item(1, 0).setText("Yellow FG Red BG")
> >>         brush = QtGui.QBrush(QtGui.QColor(255, 0, 0))
> >>         brush.setStyle(QtCore.Qt.SolidPattern)
> >>         brush = QtGui.QBrush(QtGui.QColor(255, 255, 0))
> >>         brush.setStyle(QtCore.Qt.NoBrush)
> >>         item = QtGui.QTableWidgetItem()
> >>         item.setBackground(brush)
> >>         item.setForeground(brush)
> >>         self.tableWidget.setItem(1, 1, item)
> >>         self.tableWidget.item(1, 1).setText("Yellow FG Red BG")
> >>         self.horizontalLayout.addWidget(self.tableWidget)
> >>         MainWindow.setCentralWidget(self.widget)
> >>
> >>         self.retranslateUi(MainWindow)
> >>         QtCore.QMetaObject.connectSlotsByName(MainWindow)
> >>
> >>     def retranslateUi(self, MainWindow):
> >>         __sortingEnabled = self.tableWidget.isSortingEnabled()
> >>         self.tableWidget.setSortingEnabled(False)
> >>         self.tableWidget.setSortingEnabled(__sortingEnabled)
> >>
> >>
> >> if __name__ == "__main__":
> >>     import sys
> >>     app = QtGui.QApplication(sys.argv)
> >>     MainWindow = QtGui.QMainWindow()
> >>     ui = Ui_MainWindow()
> >>     ui.setupUi(MainWindow)
> >>     MainWindow.show()
> >>     sys.exit(app.exec_())
> >>
> >> _______________________________________________
> >> PySide mailing list
> >> [email protected]
> >> http://lists.pyside.org/listinfo/pyside
> >>
> >>
> >
>
_______________________________________________
PySide mailing list
[email protected]
http://lists.pyside.org/listinfo/pyside

Reply via email to