Как сохранить корректировки QSS в Qt Designer?

Рейтинг: 1Ответов: 1Опубликовано: 10.03.2023

В Qt Designer есть возможность редактирования графического интерфейса при помощи QSS, но после изменения частей путем написания кода и закрытии приложения, этот код не сохраняется в окне редактирования его.

Можно ли как-то вывести весь QSS и html код для последующего сохранения и изменения?


UPD:

В окне styleSheet можно изменять параметры модуля кодом QSS, но после перезахода в Qt Designer кода там не будет:

введите сюда описание изображения

Пример графического интрейфейса:

<?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>320</width>
    <height>240</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralwidget">
   <layout class="QGridLayout" name="gridLayout">
    <item row="0" column="0">
     <widget class="QPushButton" name="pushButton">
      <property name="text">
       <string>PushButton</string>
      </property>
     </widget>
    </item>
    <item row="1" column="0">
     <widget class="QPushButton" name="pushButton_2">
      <property name="text">
       <string>PushButton</string>
      </property>
     </widget>
    </item>
   </layout>
  </widget>
  <widget class="QMenuBar" name="menubar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>320</width>
     <height>21</height>
    </rect>
   </property>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
 </widget>
 <resources/>
 <connections/>
</ui>

Правой кнопкой нажав по кнопке вызываю styleSheet (показан на изображении) и вставляю следующие:

QPushButton{
    min-width:  100px;
    max-width:  100px;
    min-height: 35px;
    max-height: 35px;
}

Теперь я применю изменения и кнопка увеличится, но код в styleSheet останется только до перезахода, после что бы изменить размер нужно будет заново писать этот код

Ответы

▲ 0Принят

Я не понимаю вашей проблемы, сделал как вы написали и все ok.

q1503842.py

import sys
from PyQt5 import QtCore, QtGui, QtWidgets, uic

qtCreatorFile = "q1503842.ui"                # <<<=== Введите файла .ui здесь
Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)


class MyApp(QtBaseClass, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        
        Ui_MainWindow.__init__(self)
        self.setupUi(self)
        

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = MyApp()
    window.show()
    sys.exit(app.exec_())

q1503842.ui

<?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>320</width>
    <height>240</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralwidget">
   <layout class="QGridLayout" name="gridLayout">
    <item row="0" column="0">
     <widget class="QPushButton" name="pushButton">
      <property name="text">
       <string>PushButton</string>
      </property>
     </widget>
    </item>
    <item row="1" column="0">
     <widget class="QPushButton" name="pushButton_2">
      <property name="styleSheet">
       <string notr="true">QPushButton{
    min-width:  100px;
    max-width:  100px;
    min-height: 35px;
    max-height: 35px;
}</string>
      </property>
      <property name="text">
       <string>PushButton</string>
      </property>
     </widget>
    </item>
   </layout>
  </widget>
  <widget class="QMenuBar" name="menubar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>320</width>
     <height>21</height>
    </rect>
   </property>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
 </widget>
 <resources/>
 <connections/>
</ui>

введите сюда описание изображения

введите сюда описание изображения