Jak przypisać funkcje QtDesigner do klawiszy

Jak przypisać funkcje QtDesigner do klawiszy
W1
  • Rejestracja:około 7 lat
  • Ostatnio:2 miesiące
  • Postów:110
0

Witam, mam kod który odpowiada za wygląd okna (QtDesigner) i chce stworzyć logike dla przycisków tego okna w Pythonie wspomagając się chatGPT. Ale niestety poległem więc pytam Was mądrzejszych:

Jak do któregokolwiek przycisku z sześciu dostepnych przypisać funkcje otwarcia nowego okna które już mam stworzone w QtDesignerze? oba pliki z oba oknami są w tym samym folderze na komputerze jeśli to ma jakieś znaczenie

Kopiuj
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'Fonex1.ui'
#
# Created by: PyQt5 UI code generator 5.15.11
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(932, 633)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setStyleSheet("/* Tło głównego okna */\n"
"QWidget {\n"
"    background-color: #0b0b1e; /* Bardzo ciemny granat */\n"
"}\n"
"\n"
"/* Styl dla przycisków */\n"
"QPushButton {\n"
"    background: qradialgradient(\n"
"        cx: 0.5, cy: 0.5, radius: 0.6,\n"
"        fx: 0.5, fy: 0.5,\n"
"        stop: 0 #25254d,  /* Środek przycisku - jasny granat */\n"
"        stop: 1 #18183a   /* Brzegi przycisku - ciemny granat */\n"
"    );\n"
"    color: #b0bec5; /* Jasnoszary tekst */\n"
"    border-radius: 14px;\n"
"    padding: 12px 24px;\n"
"    font-size: 16px;\n"
"    font-weight: bold;\n"
"    border: none;\n"
"    letter-spacing: 0.6px;\n"
"    transition: all 0.3s ease-in-out;\n"
"}\n"
"\n"
"/* Efekt hover - podświetlenie przy najechaniu */\n"
"QPushButton:hover {\n"
"    background: qradialgradient(\n"
"        cx: 0.5, cy: 0.5, radius: 0.6,\n"
"        fx: 0.5, fy: 0.5,\n"
"        stop: 0 #353575, /* Jaśniejszy granat w środku */\n"
"        stop: 1 #25254d  /* Bardziej nasycony granat na krawędziach */\n"
"    );\n"
"    color: #eceff1; /* Jaśniejszy tekst */\n"
"    box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.4);\n"
"}\n"
"\n"
"/* Efekt glow - dodaje subtelną poświatę */\n"
"QPushButton:focus {\n"
"    outline: none;\n"
"    box-shadow: 0px 0px 12px rgba(100, 100, 255, 0.6);\n"
"}\n"
"\n"
"/* Efekt wciśnięcia */\n"
"QPushButton:pressed {\n"
"    background: #0a0a23;\n"
"    color: #cfd8dc;\n"
"    box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.6);\n"
"    transform: scale(0.95);\n"
"    transition: background 0.5s ease-out;\n"
"}")
        self.centralwidget.setObjectName("centralwidget")
        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_2.setGeometry(QtCore.QRect(320, 10, 291, 291))
        self.pushButton_2.setStyleSheet("QPushButton {\n"
"    background: qradialgradient(\n"
"        cx: 0.5, cy: 0.5, radius: 0.6,\n"
"        fx: 0.5, fy: 0.5,\n"
"        stop: 0 #212121,  /* Bardzo ciemny granat w środku */\n"
"        stop: 1 #0d0d2d   /* Prawie czarny granat na krawędziach */\n"
"    );\n"
"    color: #b0bec5; /* Jasnoszary kolor czcionki (subtelniejszy niż biały) */\n"
"    border-radius: 20px; /* Bardziej nowoczesne zaokrąglenie */\n"
"    padding: 12px 24px; /* Większy padding dla lepszego efektu */\n"
"    font-size: 16px; /* Czytelna, nowoczesna czcionka */\n"
"    font-weight: bold;\n"
"    border: none;\n"
"    letter-spacing: 0.6px; /* Delikatne rozsunięcie liter */\n"
"    transition: all 0.3s ease-in-out;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"    background: qradialgradient(\n"
"        cx: 0.5, cy: 0.5, radius: 0.6,\n"
"        fx: 0.5, fy: 0.5,\n"
"        stop: 0 #303060, /* Jaśniejszy granat w środku */\n"
"        stop: 1 #191933  /* Lekko rozjaśnione krawędzie */\n"
"    );\n"
"    color: #eceff1; /* Jaśniejsza czcionka dla lepszej widoczności */\n"
"    box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.4); /* Nowoczesny efekt podniesienia */\n"
"}\n"
"\n"
"QPushButton:pressed {\n"
"    background: qradialgradient(\n"
"        cx: 0.5, cy: 0.5, radius: 0.6,\n"
"        fx: 0.5, fy: 0.5,\n"
"        stop: 0 #0a0a23, /* Jeszcze ciemniejszy środek */\n"
"        stop: 1 #070718  /* Prawie czarne krawędzie */\n"
"    );\n"
"    color: #cfd8dc; /* Delikatnie rozjaśniona czcionka */\n"
"    box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.6);\n"
"    transform: scale(0.96); /* Efekt wciśnięcia */\n"
"}")
        self.pushButton_2.setObjectName("pushButton_2")
        self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_3.setGeometry(QtCore.QRect(320, 310, 291, 291))
        self.pushButton_3.setStyleSheet("QPushButton {\n"
"    background: qradialgradient(\n"
"        cx: 0.5, cy: 0.5, radius: 0.6,\n"
"        fx: 0.5, fy: 0.5,\n"
"        stop: 0 #212121,  /* Bardzo ciemny granat w środku */\n"
"        stop: 1 #0d0d2d   /* Prawie czarny granat na krawędziach */\n"
"    );\n"
"    color: #b0bec5; /* Jasnoszary kolor czcionki (subtelniejszy niż biały) */\n"
"    border-radius: 20px; /* Bardziej nowoczesne zaokrąglenie */\n"
"    padding: 12px 24px; /* Większy padding dla lepszego efektu */\n"
"    font-size: 16px; /* Czytelna, nowoczesna czcionka */\n"
"    font-weight: bold;\n"
"    border: none;\n"
"    letter-spacing: 0.6px; /* Delikatne rozsunięcie liter */\n"
"    transition: all 0.3s ease-in-out;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"    background: qradialgradient(\n"
"        cx: 0.5, cy: 0.5, radius: 0.6,\n"
"        fx: 0.5, fy: 0.5,\n"
"        stop: 0 #303060, /* Jaśniejszy granat w środku */\n"
"        stop: 1 #191933  /* Lekko rozjaśnione krawędzie */\n"
"    );\n"
"    color: #eceff1; /* Jaśniejsza czcionka dla lepszej widoczności */\n"
"    box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.4); /* Nowoczesny efekt podniesienia */\n"
"}\n"
"\n"
"QPushButton:pressed {\n"
"    background: qradialgradient(\n"
"        cx: 0.5, cy: 0.5, radius: 0.6,\n"
"        fx: 0.5, fy: 0.5,\n"
"        stop: 0 #0a0a23, /* Jeszcze ciemniejszy środek */\n"
"        stop: 1 #070718  /* Prawie czarne krawędzie */\n"
"    );\n"
"    color: #cfd8dc; /* Delikatnie rozjaśniona czcionka */\n"
"    box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.6);\n"
"    transform: scale(0.96); /* Efekt wciśnięcia */\n"
"}")
        self.pushButton_3.setObjectName("pushButton_3")
        self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_4.setGeometry(QtCore.QRect(620, 310, 291, 291))
        self.pushButton_4.setStyleSheet("QPushButton {\n"
"    background: qradialgradient(\n"
"        cx: 0.5, cy: 0.5, radius: 0.6,\n"
"        fx: 0.5, fy: 0.5,\n"
"        stop: 0 #212121,  /* Bardzo ciemny granat w środku */\n"
"        stop: 1 #0d0d2d   /* Prawie czarny granat na krawędziach */\n"
"    );\n"
"    color: #b0bec5; /* Jasnoszary kolor czcionki (subtelniejszy niż biały) */\n"
"    border-radius: 20px; /* Bardziej nowoczesne zaokrąglenie */\n"
"    padding: 12px 24px; /* Większy padding dla lepszego efektu */\n"
"    font-size: 16px; /* Czytelna, nowoczesna czcionka */\n"
"    font-weight: bold;\n"
"    border: none;\n"
"    letter-spacing: 0.6px; /* Delikatne rozsunięcie liter */\n"
"    transition: all 0.3s ease-in-out;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"    background: qradialgradient(\n"
"        cx: 0.5, cy: 0.5, radius: 0.6,\n"
"        fx: 0.5, fy: 0.5,\n"
"        stop: 0 #303060, /* Jaśniejszy granat w środku */\n"
"        stop: 1 #191933  /* Lekko rozjaśnione krawędzie */\n"
"    );\n"
"    color: #eceff1; /* Jaśniejsza czcionka dla lepszej widoczności */\n"
"    box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.4); /* Nowoczesny efekt podniesienia */\n"
"}\n"
"\n"
"QPushButton:pressed {\n"
"    background: qradialgradient(\n"
"        cx: 0.5, cy: 0.5, radius: 0.6,\n"
"        fx: 0.5, fy: 0.5,\n"
"        stop: 0 #0a0a23, /* Jeszcze ciemniejszy środek */\n"
"        stop: 1 #070718  /* Prawie czarne krawędzie */\n"
"    );\n"
"    color: #cfd8dc; /* Delikatnie rozjaśniona czcionka */\n"
"    box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.6);\n"
"    transform: scale(0.96); /* Efekt wciśnięcia */\n"
"}")
        self.pushButton_4.setObjectName("pushButton_4")
        self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_5.setGeometry(QtCore.QRect(620, 10, 291, 291))
        self.pushButton_5.setStyleSheet("QPushButton {\n"
"    background: qradialgradient(\n"
"        cx: 0.5, cy: 0.5, radius: 0.6,\n"
"        fx: 0.5, fy: 0.5,\n"
"        stop: 0 #212121,  /* Bardzo ciemny granat w środku */\n"
"        stop: 1 #0d0d2d   /* Prawie czarny granat na krawędziach */\n"
"    );\n"
"    color: #b0bec5; /* Jasnoszary kolor czcionki (subtelniejszy niż biały) */\n"
"    border-radius: 20px; /* Bardziej nowoczesne zaokrąglenie */\n"
"    padding: 12px 24px; /* Większy padding dla lepszego efektu */\n"
"    font-size: 16px; /* Czytelna, nowoczesna czcionka */\n"
"    font-weight: bold;\n"
"    border: none;\n"
"    letter-spacing: 0.6px; /* Delikatne rozsunięcie liter */\n"
"    transition: all 0.3s ease-in-out;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"    background: qradialgradient(\n"
"        cx: 0.5, cy: 0.5, radius: 0.6,\n"
"        fx: 0.5, fy: 0.5,\n"
"        stop: 0 #303060, /* Jaśniejszy granat w środku */\n"
"        stop: 1 #191933  /* Lekko rozjaśnione krawędzie */\n"
"    );\n"
"    color: #eceff1; /* Jaśniejsza czcionka dla lepszej widoczności */\n"
"    box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.4); /* Nowoczesny efekt podniesienia */\n"
"}\n"
"\n"
"QPushButton:pressed {\n"
"    background: qradialgradient(\n"
"        cx: 0.5, cy: 0.5, radius: 0.6,\n"
"        fx: 0.5, fy: 0.5,\n"
"        stop: 0 #0a0a23, /* Jeszcze ciemniejszy środek */\n"
"        stop: 1 #070718  /* Prawie czarne krawędzie */\n"
"    );\n"
"    color: #cfd8dc; /* Delikatnie rozjaśniona czcionka */\n"
"    box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.6);\n"
"    transform: scale(0.96); /* Efekt wciśnięcia */\n"
"}")
        self.pushButton_5.setObjectName("pushButton_5")
        self.pushButton_6 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_6.setGeometry(QtCore.QRect(20, 310, 291, 291))
        self.pushButton_6.setStyleSheet("QPushButton {\n"
"    background: qradialgradient(\n"
"        cx: 0.5, cy: 0.5, radius: 0.6,\n"
"        fx: 0.5, fy: 0.5,\n"
"        stop: 0 #212121,  /* Bardzo ciemny granat w środku */\n"
"        stop: 1 #0d0d2d   /* Prawie czarny granat na krawędziach */\n"
"    );\n"
"    color: #b0bec5; /* Jasnoszary kolor czcionki (subtelniejszy niż biały) */\n"
"    border-radius: 20px; /* Bardziej nowoczesne zaokrąglenie */\n"
"    padding: 12px 24px; /* Większy padding dla lepszego efektu */\n"
"    font-size: 16px; /* Czytelna, nowoczesna czcionka */\n"
"    font-weight: bold;\n"
"    border: none;\n"
"    letter-spacing: 0.6px; /* Delikatne rozsunięcie liter */\n"
"    transition: all 0.3s ease-in-out;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"    background: qradialgradient(\n"
"        cx: 0.5, cy: 0.5, radius: 0.6,\n"
"        fx: 0.5, fy: 0.5,\n"
"        stop: 0 #303060, /* Jaśniejszy granat w środku */\n"
"        stop: 1 #191933  /* Lekko rozjaśnione krawędzie */\n"
"    );\n"
"    color: #eceff1; /* Jaśniejsza czcionka dla lepszej widoczności */\n"
"    box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.4); /* Nowoczesny efekt podniesienia */\n"
"}\n"
"\n"
"QPushButton:pressed {\n"
"    background: qradialgradient(\n"
"        cx: 0.5, cy: 0.5, radius: 0.6,\n"
"        fx: 0.5, fy: 0.5,\n"
"        stop: 0 #0a0a23, /* Jeszcze ciemniejszy środek */\n"
"        stop: 1 #070718  /* Prawie czarne krawędzie */\n"
"    );\n"
"    color: #cfd8dc; /* Delikatnie rozjaśniona czcionka */\n"
"    box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.6);\n"
"    transform: scale(0.96); /* Efekt wciśnięcia */\n"
"}")
        self.pushButton_6.setObjectName("pushButton_6")
        self.pushButton_6.setToolTip("tutaj tworzymy coś tam....")
        self.pushButton_7 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_7.setGeometry(QtCore.QRect(20, 10, 291, 291))
        self.pushButton_7.setStyleSheet("QPushButton {\n"
"    background: qradialgradient(\n"
"        cx: 0.5, cy: 0.5, radius: 0.6,\n"
"        fx: 0.5, fy: 0.5,\n"
"        stop: 0 #212121,  /* Bardzo ciemny granat w środku */\n"
"        stop: 1 #0d0d2d   /* Prawie czarny granat na krawędziach */\n"
"    );\n"
"    color: #b0bec5; /* Jasnoszary kolor czcionki (subtelniejszy niż biały) */\n"
"    border-radius: 20px; /* Bardziej nowoczesne zaokrąglenie */\n"
"    padding: 12px 24px; /* Większy padding dla lepszego efektu */\n"
"    font-size: 16px; /* Czytelna, nowoczesna czcionka */\n"
"    font-weight: bold;\n"
"    border: none;\n"
"    letter-spacing: 0.6px; /* Delikatne rozsunięcie liter */\n"
"    transition: all 0.3s ease-in-out;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"    background: qradialgradient(\n"
"        cx: 0.5, cy: 0.5, radius: 0.6,\n"
"        fx: 0.5, fy: 0.5,\n"
"        stop: 0 #303060, /* Jaśniejszy granat w środku */\n"
"        stop: 1 #191933  /* Lekko rozjaśnione krawędzie */\n"
"    );\n"
"    color: #eceff1; /* Jaśniejsza czcionka dla lepszej widoczności */\n"
"    box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.4); /* Nowoczesny efekt podniesienia */\n"
"}\n"
"\n"
"QPushButton:pressed {\n"
"    background: qradialgradient(\n"
"        cx: 0.5, cy: 0.5, radius: 0.6,\n"
"        fx: 0.5, fy: 0.5,\n"
"        stop: 0 #0a0a23, /* Jeszcze ciemniejszy środek */\n"
"        stop: 1 #070718  /* Prawie czarne krawędzie */\n"
"    );\n"
"    color: #cfd8dc; /* Delikatnie rozjaśniona czcionka */\n"
"    box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.6);\n"
"    transform: scale(0.96); /* Efekt wciśnięcia */\n"
"}")
        self.pushButton_7.setObjectName("pushButton_7")
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton_2.setText(_translate("MainWindow", "Aktualne pozycje"))
        self.pushButton_3.setText(_translate("MainWindow", "Daytrading"))
        self.pushButton_4.setText(_translate("MainWindow", "PushButton"))
        self.pushButton_5.setText(_translate("MainWindow", "Archiwum"))
        self.pushButton_6.setText(_translate("MainWindow", "Setupy"))
        self.pushButton_7.setText(_translate("MainWindow", "Analiza"))
if __name__ == "__main__":
    import sys
    from PyQt5.QtWidgets import QApplication, QMainWindow
    app = QApplication(sys.argv)
    window = QMainWindow()
    ui = Ui_MainWindow()  # Upewnij się, że nazwa klasy odpowiada Twojemu interfejsowi
    ui.setupUi(window)
    window.show()
    sys.exit(app.exec_())
edytowany 2x, ostatnio: Riddle
Marius.Maximus
  • Rejestracja:ponad 14 lat
  • Ostatnio:4 minuty
  • Postów:2102
1

poczytaj albo zapytaj chatGPT o

  • keyPressEvent
  • QShortcut
  • EventFilter
    I wybierz to co Ci najbardziej odpowiada do Twojej koncepcji

--
Nie przyjmuję reklamacji za moje rady, używasz na własną odpowiedzialność.
Programowanie bez formatowania to jak chodzenie ze spodniami spuszczonymi na kostki. Owszem da się ale po pierwsze nie wygodne, po drugie nieprzyzwoicie wygląda.
Przed zaczęciem nowego wątku przeczytam problem XY
Spine
  • Rejestracja:około 22 lata
  • Ostatnio:około 2 godziny
  • Postów:6694
1

Chcesz przypisać akcję do buttona?

Wycinek z mojego projektu:

Kopiuj
class WordFinder(QMainWindow):
  def __init__(self):
    self.findButton = QPushButton("Find!")
    self.findButton.clicked.connect(self.findWords)

  def findWords(self):
    # akcja przycisku
    pass

W funkcji, która jest akcją przycisku dodaj kod otwierający inne okienko.


Przykład wygenerowany przez ChatGPT:

Kopiuj
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QWidget, QVBoxLayout

class SecondWindow(QWidget):  # Drugie okno dziedziczące po QWidget
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Drugie okno")
        self.setGeometry(200, 200, 300, 200)

class MainWindow(QMainWindow):  # Główne okno
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Główne okno")
        self.setGeometry(100, 100, 400, 300)

        self.button = QPushButton("Otwórz drugie okno", self)
        self.button.clicked.connect(self.open_second_window)
        self.setCentralWidget(self.button)

        self.second_window = None  # Przechowywanie referencji do drugiego okna

    def open_second_window(self):
        if self.second_window is None:  # Jeśli nie istnieje, tworzymy nowe okno
            self.second_window = SecondWindow()
        self.second_window.show()  # Pokazujemy okno

if __name__ == "__main__":
    app = QApplication(sys.argv)
    main_window = MainWindow()
    main_window.show()
    sys.exit(app.exec_())


Moim zdaniem łatwiej Ci będzie ogarnąć Qt, jeśli napiszesz swoje GUI bez QtDesignera.
A jak już zaczniesz używać QtDesignera, to zgodnie z warningiem:

Kopiuj
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.

Nie edytuj tego pliku, tylko napisz klasę dziedziczącą, która będzie implementowała aplikację.
Wtedy ponowna edycja GUI w Designerze nie będzie wymagała, żebyś przekopywał całą aplikację ;)


🕹️⌨️🖥️🖱️🎮
edytowany 5x, ostatnio: Spine
W1
  • Rejestracja:około 7 lat
  • Ostatnio:2 miesiące
  • Postów:110
0
Spine napisał(a):

Chcesz przypisać akcję do buttona?

Wycinek z mojego projektu:

Kopiuj
class WordFinder(QMainWindow):
  def __init__(self):
    self.findButton = QPushButton("Find!")
    self.findButton.clicked.connect(self.findWords)

  def findWords(self):
    # akcja przycisku
    pass

W funkcji, która jest akcją przycisku dodaj kod otwierający inne okienko.


Przykład wygenerowany przez ChatGPT:

Kopiuj
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QWidget, QVBoxLayout

class SecondWindow(QWidget):  # Drugie okno dziedziczące po QWidget
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Drugie okno")
        self.setGeometry(200, 200, 300, 200)

class MainWindow(QMainWindow):  # Główne okno
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Główne okno")
        self.setGeometry(100, 100, 400, 300)

        self.button = QPushButton("Otwórz drugie okno", self)
        self.button.clicked.connect(self.open_second_window)
        self.setCentralWidget(self.button)

        self.second_window = None  # Przechowywanie referencji do drugiego okna

    def open_second_window(self):
        if self.second_window is None:  # Jeśli nie istnieje, tworzymy nowe okno
            self.second_window = SecondWindow()
        self.second_window.show()  # Pokazujemy okno

if __name__ == "__main__":
    app = QApplication(sys.argv)
    main_window = MainWindow()
    main_window.show()
    sys.exit(app.exec_())


Moim zdaniem łatwiej Ci będzie ogarnąć Qt, jeśli napiszesz swoje GUI bez QtDesignera.
A jak już zaczniesz używać QtDesignera, to zgodnie z warningiem:

Kopiuj
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.

Nie edytuj tego pliku, tylko napisz klasę dziedziczącą, która będzie implementowała aplikację.
Wtedy ponowna edycja GUI w Designerze nie będzie wymagała, żebyś przekopywał całą aplikację ;)

Może faktycznie masz rację żeby nie bawić się z Qt Designerem tylko os początku pisać aplikacje w Pythonie. Możliwe że to prostsze rozwiązanie...

Spine
  • Rejestracja:około 22 lata
  • Ostatnio:około 2 godziny
  • Postów:6694
1
wojtek1492 napisał(a):

Może faktycznie masz rację żeby nie bawić się z Qt Designerem tylko os początku pisać aplikacje w Pythonie. Możliwe że to prostsze rozwiązanie...

Tylko żeby się upewnić, że się rozumiemy.
Nie chodzi mi o to, żeby całkowicie zrezygnować z Qt, tylko żeby zrezygnować z QtDesignera.
GUI wciąż możesz pisać w Qt, tylko nie musisz używać QtDesignera aby to GUI wyklikać.


🕹️⌨️🖥️🖱️🎮
edytowany 1x, ostatnio: Spine
W1
  • Rejestracja:około 7 lat
  • Ostatnio:2 miesiące
  • Postów:110
0
Spine napisał(a):
wojtek1492 napisał(a):

Może faktycznie masz rację żeby nie bawić się z Qt Designerem tylko os początku pisać aplikacje w Pythonie. Możliwe że to prostsze rozwiązanie...

Tylko żeby się upewnić, że się rozumiemy.
Nie chodzi mi o to, żeby całkowicie zrezygnować z Qt, tylko żeby zrezygnować z QtDesignera.
GUI wciąż możesz pisać w Qt, tylko nie musisz używać QtDesignera aby to GUI wyklikać.

Pisząc Qt masz na myśli PyQt?

Spine
  • Rejestracja:około 22 lata
  • Ostatnio:około 2 godziny
  • Postów:6694
0

@wojtek1492: Tak, PyQt.


🕹️⌨️🖥️🖱️🎮
W1
  • Rejestracja:około 7 lat
  • Ostatnio:2 miesiące
  • Postów:110
0
Spine napisał(a):

@wojtek1492: Tak, PyQt.

Jasne rozumiem, mam zamiar korzystać właśnie z PyQt5. Dziękuję za pomoc

Spine
  • Rejestracja:około 22 lata
  • Ostatnio:około 2 godziny
  • Postów:6694
0

A ChatGPT nawet sobie radzi z tworzeniem GUI dla prostych aplikacji.
Np. w tym temacie wygenerowałem całą aplikację Chatem:
Edytor tekstu - ucinanie pierwszych badz ostatnich liter


🕹️⌨️🖥️🖱️🎮
edytowany 1x, ostatnio: Spine
W1
  • Rejestracja:około 7 lat
  • Ostatnio:2 miesiące
  • Postów:110
1
Spine napisał(a):

A ChatGPT nawet sobie radzi z tworzeniem GUI dla prostych aplikacji.
Np. w tym temacie wygenerowałem całą aplikację Chatem:
Edytor tekstu - ucinanie pierwszych badz ostatnich liter

Przejrzę, dziękuję. Ja wczoraj poległem właśnie na podpięciu "akcji" pod przycisk bo część kody była z QT Designera, część z PyQt i GPT się trochę gubił. na pewno od początku będę korzystał z OOP żeby później nie mieć problemów z rozbudową. Kupiłem wersję PLUS GPT więc będzie mniej limitów i jednakowy model językowy. Zobaczymy czy zielony z czatem GPT zrobi prostą apke :) Dziękuję wszystkim za pomoc.

W1
  • Rejestracja:około 7 lat
  • Ostatnio:2 miesiące
  • Postów:110
0

Witam, poległem na takiej błachostce. W oknie które pojawia się z tej części kodu przyciski yes,no, cancel są w ciemnych prostokątach. ChatGPT niestety poległ razem ze mną 😄

Kopiuj
def go_back_to_analiza1(self):
        """
        Jeśli dokonano zmian, pyta użytkownika, czy chce zapisać zmiany,
        a okno dialogowe ma białe tło i białe przyciski (z czarnym tekstem).
        """
        if self.changes_made:
            msgBox = QMessageBox(self)
            msgBox.setWindowTitle("Potwierdzenie")
            msgBox.setText("Czy przed wyjściem chcesz zapisać zmiany?")
            msgBox.setStandardButtons(QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel)
            msgBox.setDefaultButton(QMessageBox.Cancel)
            msgBox.setStyleSheet("""
                QMessageBox { background-color: white !important; color: black !important; }
                QMessageBox QLabel { background-color: white !important; color: black !important; }
                QMessageBox QPushButton, QDialogButtonBox QPushButton { 
                    background-color: white !important; 
                    color: black !important; 
                    border: 1px solid black !important; 
                    border-radius: 5px !important; 
                    padding: 5px !important; 
                }
            """)
            reply = msgBox.exec_()
            if reply == QMessageBox.Yes:
                self.save_changes()
            elif reply == QMessageBox.Cancel:
                return
        from Analiza1 import Window as Analiza1Window
        self.analiza1_window = Analiza1Window()
        self.analiza1_window.show()
        self.close()

Spine
  • Rejestracja:około 22 lata
  • Ostatnio:około 2 godziny
  • Postów:6694
0

Mógłbyś dać screenshoty.
U mnie wygląda tak:
screenshot-20250223075530.png

Czemu nadpisujesz standardowy styl?
Bez wywołania:

Kopiuj
		msgBox.setStyleSheet("""
			QMessageBox { background-color: white !important; color: black !important; }
			QMessageBox QLabel { background-color: white !important; color: black !important; }
			QMessageBox QPushButton, QDialogButtonBox QPushButton { 
				background-color: white !important; 
				color: black !important; 
				border: 1px solid black !important; 
				border-radius: 5px !important; 
				padding: 5px !important; 
			}
		""")

Okienko wygląda tak:

screenshot-20250223075858.png


🕹️⌨️🖥️🖱️🎮
edytowany 2x, ostatnio: Spine
W1
  • Rejestracja:około 7 lat
  • Ostatnio:2 miesiące
  • Postów:110
0
Spine napisał(a):

Mógłbyś dać screenshoty.
U mnie wygląda tak:
screenshot-20250223075530.png

Czemu nadpisujesz standardowy styl?
Bez wywołania:

Kopiuj
		msgBox.setStyleSheet("""
			QMessageBox { background-color: white !important; color: black !important; }
			QMessageBox QLabel { background-color: white !important; color: black !important; }
			QMessageBox QPushButton, QDialogButtonBox QPushButton { 
				background-color: white !important; 
				color: black !important; 
				border: 1px solid black !important; 
				border-radius: 5px !important; 
				padding: 5px !important; 
			}
		""")

Okienko wygląda tak:

screenshot-20250223075858.png

screenshot-20250223103909.png

Tutaj widok mojego okna...spróbuję pominąć to co napisałeś i sprawdzę wtedy jak to wygląda 🙂

Po usunięciu kodu o którym wspomniałeś wygląda tak:
screenshot-20250223104227.png

Wychodzi więc na to że to w innym miejscu mojego kodu jest błąd dotyczący wyglądu okna 🙂

edytowany 1x, ostatnio: wojtek1492

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.