Jak przypisać funkcje QtDesigner do klawiszy

Jak przypisać funkcje QtDesigner do klawiszy
W1
  • Rejestracja: dni
  • Ostatnio: dni
  • 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_())
Marius.Maximus
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2201
1

poczytaj albo zapytaj chatGPT o

  • keyPressEvent
  • QShortcut
  • EventFilter
    I wybierz to co Ci najbardziej odpowiada do Twojej koncepcji
Spine
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6967
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ę ;)

W1
  • Rejestracja: dni
  • Ostatnio: dni
  • 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: dni
  • Ostatnio: dni
  • Postów: 6967
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ć.

W1
  • Rejestracja: dni
  • Ostatnio: dni
  • 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: dni
  • Ostatnio: dni
  • Postów: 6967
0

@wojtek1492: Tak, PyQt.

W1
  • Rejestracja: dni
  • Ostatnio: dni
  • 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: dni
  • Ostatnio: dni
  • Postów: 6967
0

A ChatGPT nawet sobie radzi z tworzeniem GUI dla prostych aplikacji.
Np. w tym temacie wygenerowałem całą aplikację Chatem:
https://4programmers.net/Forum/Off-Topic/375300-edytor_tekstu_ucinanie_pierwszych_badz_ostatnich_liter?p=1989007#id1989007

W1
  • Rejestracja: dni
  • Ostatnio: dni
  • 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:
https://4programmers.net/Forum/Off-Topic/375300-edytor_tekstu_ucinanie_pierwszych_badz_ostatnich_liter?p=1989007#id1989007

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: dni
  • Ostatnio: dni
  • 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: dni
  • Ostatnio: dni
  • Postów: 6967
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

W1
  • Rejestracja: dni
  • Ostatnio: dni
  • 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 🙂

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.