Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Atalanttore
User
Beiträge: 407 Registriert: Freitag 6. August 2010, 17:03
Sonntag 14. April 2019, 21:33
Hallo
Ich würde gerne die Balkenfarbe einer `QProgressBar` ändern, aber es wird leider nur die Angabe zur Hintergrundfarbe im Stylesheet beachtet. Als Balkenfarbe wird immer ein Türkiston verwendet.
Stylesheet:
Code: Alles auswählen
color: rgb(255, 0, 0);
background-color: rgb(0, 0, 255);
Gruß
Atalanttore
__deets__
User
Beiträge: 14541 Registriert: Mittwoch 14. Oktober 2015, 14:29
Atalanttore
User
Beiträge: 407 Registriert: Freitag 6. August 2010, 17:03
Montag 15. April 2019, 14:58
Beim Nachschauen habe ich herausgefunden, dass das Attribut `color` dafür vorgesehen ist - was in meinem Fall von Qt leider nicht beachtet wird.
Gruß
Atalanttore
__deets__
User
Beiträge: 14541 Registriert: Mittwoch 14. Oktober 2015, 14:29
Montag 15. April 2019, 15:12
Dann habe ich da auch keine weitere Loesung fuer. Ausser in den Quellcode von QProgressBar schauen & gucken, ob man es daraus ableiten kann.
Atalanttore
User
Beiträge: 407 Registriert: Freitag 6. August 2010, 17:03
Dienstag 16. April 2019, 21:17
Ich habe mittlerweile einen noch einigermaßen eleganten Weg gefunden, wie man die Balkenfarbe einer `QProgressBar` selbst festlegen kann. Es funktioniert mit einer eigenen `QPalette` dafür.
main.py:
Code: Alles auswählen
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.uic import loadUi
from PyQt5.QtGui import QPalette
from PyQt5.QtCore import Qt
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
loadUi("mainwindow.ui", self)
palette = QPalette(self.palette())
palette.setColor(QPalette.Highlight, Qt.yellow)
self.progressBar.setPalette(palette)
def main():
app = QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
mainwindow.ui:
Code: Alles auswählen
<?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>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QProgressBar" name="progressBar">
<property name="geometry">
<rect>
<x>30</x>
<y>110</y>
<width>671</width>
<height>25</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(78, 154, 6);</string>
</property>
<property name="value">
<number>25</number>
</property>
</widget>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>28</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>
Gruß
Atalanttore