[PyQt] QPushButton and and QmenuBar issues - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: GUI (https://python-forum.io/forum-10.html) +--- Thread: [PyQt] QPushButton and and QmenuBar issues (/thread-30604.html) |
QPushButton and and QmenuBar issues - zettai - Oct-27-2020 import json import math import os import PyQt5 from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5 import QtWidgets import sys from importlib import import_module class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("Grandier Calcutron") self.setWindowIcon(QIcon('icon.ico')) self.setGeometry(0, 0, 2000, 992) self.Welcome_Message() def Welcome_Message(self): global __Format__ Y = 10 X = 100 Scale_X = 120 Scale_Y = 30 welcome_message = QLabel("Welcome to the Grandier Calcutron!", self) welcome_message.setFont(QFont("Arial",16)) welcome_message.move(700, 300) tutorial_message_1 = QLabel("Import a deck to begin!\nFormatting examples are in the sample files.", self) tutorial_message_1.setFont(QFont("Arial",16)) tutorial_message_1.setAlignment(Qt.AlignCenter) tutorial_message_1.move(660, 340) Import_Deck = QPushButton(self) Import_Sym = QPixmap("symbols/import_sym") Import_Sym = QIcon(Import_Sym) Import_Deck.setIcon(Import_Sym) Import_Deck.clicked.connect(self.import_click) Import_Deck.clicked.connect(welcome_message.hide) Import_Deck.clicked.connect(tutorial_message_1.hide) Import_Deck.clicked.connect(Import_Deck.hide) Import_Deck.move(10, 10) Import_Deck.resize(100, 100) stats_button = QPushButton("Stats", self) stats_button.move(250, Y) stats_button.resize(120, 30) formats = ["Commander", "Oath Breaker", "Standard", "Free-Form", "Artisan", "Prismatic"] self.combo = QComboBox(self) for i in formats: self.combo.addItem(i) self.combo.move(370,Y+1) self.combo.resize(120, 28) __Format__ = self.combo.currentText() def display_color_event(self): X = 30 Y = 10 color_icon = QPixmap("symbols/C.png") color_icon_label = QLabel(self) new_color_icon = color_icon.scaled(100, 100, Qt.KeepAspectRatio, Qt.FastTransformation) color_icon_label.setPixmap(new_color_icon) color_icon_label.move(X, Y) color_icon_label.show() def import_click(self): self.openFileNameDialog() ext = os.path.splitext(deckFile)[-1].lower() if ext == ".cmdr": fmtda.commander.decklist_import(deckFile) self.decklist_display(formatword="commander") elif ext == ".oath": fmtda.oathbreaker.decklist_import(deckFile) self.decklist_display(formatword="oath-breaker") elif ext == ".stand": fmtda.standard.decklist_import(deckFile) self.decklist_display() elif ext == ".free": fmtda.free_form.decklist_import(deckFile) self.decklist_display() elif ext == ".arti": fmtda.artisan.decklist_import(deckFile) self.decklist_display() elif ext == ".pris": fmtda.prismatic.decklist_import(deckFile) self.decklist_display() self.display_color_event() def decklist_display(self, formatword="nil"): lis = fmtda.base_decklist commanderlis = fmtda.commanders Y_BASE = 120 X_BASE = 20 X = 20 X2 = 18 Y = 120 Y2 = 100 for num, card in lis: if card in commanderlis: label = QLabel(f"{card} is your {formatword}", self) print(f"{card} is your {formatword}") else: label = QLabel(f"{num}x {card}", self) pixmap = QPixmap("UI/namebox.png") image = QLabel(self) pixmap = pixmap.scaled(200, 30, Qt.KeepAspectRatio, Qt.FastTransformation) image.setPixmap(pixmap) image.move(X2, Y2) image.show label.setFont(QFont("Arial",12)) label.move(X, Y) label.show() Y = Y+26 Y2 = Y2+30 if Y > (Y_BASE)+26*31: Y = Y_BASE X = X+333 Y = Y_BASE X = X_BASE for card in commanderlis: label = QLabel(f"{card} is your {formatword}", self) print(f"{card} is your {formatword}") label.setFont(QFont("Arial",12)) label.move(X+120, Y-30) label.show() Y = Y+26 Y2 = Y2+30 if Y > (Y_BASE)+26*31: Y = Y_BASE X = X+333 def openFileNameDialog(self): global deckFile deckfile = 0 options = QFileDialog.Options() options |= QFileDialog.DontUseNativeDialog fileName, _ = QFileDialog.getOpenFileName(self,"QFileDialog.getOpenFileName()", "","Commander files (*.cmdr);;Oath Breaker files (*.oath);;Standard files (*.stand);;Free Form files (*.free);;Artisan files (*.arti);;Prismatic files (*.pris)", options=options) deckFile = fileName app = QApplication(sys.argv) screen = Window() screen.show() sys.exit(app.exec_())This is my code, the issue with it is the button icon is far too small. I want it to be larger, (100px by 100px) and it needs to be all that's visible of the button. I also want a menu bar and I cannot figure out how to implement that. I've tried just about everything on the first two pages of google. I also cannot use QtDesigner. Any help would be much appreciated! RE: QPushButton and and QmenuBar issues - Axel_Erfurt - Oct-27-2020 you can add Import_Deck.setIconSize(QSize(100, 100))
RE: QPushButton and and QmenuBar issues - zettai - Oct-27-2020 (Oct-27-2020, 10:03 PM)Axel_Erfurt Wrote: you can add Ah! that gets it to the right size! Thank you so much! Is there a way to round the corners of the button so I can have it smoothly fit into a circle hole in my UI? RE: QPushButton and and QmenuBar issues - Axel_Erfurt - Oct-27-2020 You can use StyleSheet (css) for example Import_Deck.setStyleSheet("background: #204a87; border-radius: 10px;")
RE: QPushButton and and QmenuBar issues - zettai - Oct-27-2020 (Oct-27-2020, 10:30 PM)Axel_Erfurt Wrote: You can use StyleSheet (css) Thank you so much for your help! I was stuck on that button most of the day. RE: QPushButton and and QmenuBar issues - Axel_Erfurt - Oct-28-2020 For menubar and more there are tutorials at zetcode and learnpyqt |