Нужно сделать так, чтобы кнопка стала невидимой
Я пытаюсь написать лаунчер по готовому изображению, вставив в него несколько объектов.
Если вставить простую кнопку над крестиком(Выход), то получится некрасиво, и мне захотелось сделать кнопку невидимой, т.к закрашивать кнопку - не вариант.
Поискал в интернете - найти не смог, поэтому сюда и пишу.
Собственно, сам вопрос: Как сделать кнопку прозрачной.
Часть кода, к которой вопрос относится:
import sys
from PyQt5.Qt import *
class Game(QWidget):
def __init__(self, s, r, f, d, img, parent):
super(Game, self).__init__()
# print(s, r, f, d, img, parent)
self.parent = parent
flags = self.windowFlags() | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint
self.setWindowFlags(flags)
self.setGeometry(200, 200, 870, 460)
self.setWindowTitle('Login')
self.label = QLabel()
self.label.setPixmap(QPixmap(img))
self.button = QPushButton('End', clicked=self.go_end)
self.grid_layout = QGridLayout(self)
self.grid_layout.addWidget(self.label)
self.grid_layout.addWidget(self.button)
background = QPixmap("SCpng.png").scaled(880, 500)
pal = self.palette()
pal.setBrush(QPalette.Background, QBrush(background))
self.setPalette(pal)
self.show()
def go_end(self):
self.hide()
Мне не особо нужна помощь в написании программы, мне бы пригодился простой пример
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Не уверен, что правильно вас понял. Чтобы кнопка стала невидимой, необязательно делать ее прозрачной. Я предлагаю задать ей нужный цвет фона, чтобы она слилась с основным фоном.
import sys
from PyQt5.Qt import *
class Game(QWidget):
def __init__(self, s=0, r=0, f=0, d=0, img='Ok.png', parent=None):
super(Game, self).__init__()
self.parent = parent
flags = self.windowFlags() | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint
self.setWindowFlags(flags)
self.setGeometry(200, 200, 870, 460)
self.setWindowTitle('Login')
self.label = QLabel()
self.label.setPixmap(QPixmap(img))
self.button = QPushButton(' ', self, clicked=self.go_end)
# разместите где хотите
self.button.setGeometry(850, 0, 20, 20) # +++
# задайте нужный фоновый цвет, чтобы кнопка слилась с общим фоном
self.button.setStyleSheet('background-color: #537abb; border: none;') # +++
self.grid_layout = QGridLayout(self)
self.grid_layout.addWidget(self.label)
# - self.grid_layout.addWidget(self.button) # ???
background = QPixmap("pano.jpg").scaled(880, 500)
pal = self.palette()
pal.setBrush(QPalette.Background, QBrush(background))
self.setPalette(pal)
def go_end(self):
# - self.hide() # ???
print(' -- go_end --')
if __name__ == '__main__':
app = QApplication(sys.argv)
# пробуйте с одной из установок или без них, как вам лучше подойдет # !!!
app.setStyle(QStyleFactory.create('Windows'))
# или так
# app.setStyle(QStyleFactory.create('Fusion'))
# или без
w = Game()
w.show()
sys.exit(app.exec_())

