我正在使用PyQt5,但无法使按钮正常工作。 与我的按钮相关的代码是:
Import_Deck = QPushButton("Import Deck", self)
Import_Deck.resize(150, 50)
Import_Deck.clicked.connect(self.importdeck)
layout.addWidget(Import_Deck, 0, 0)
尽管它确实显示在我的窗口中,但它没有调整大小。放置layout.addWidget(Import_Deck, 0, 40)
也不会移动它。我已经尝试过QtGeometry(Import_Deck, 0, 0, H, W)
; QtGeometry(Import_Deck, H, W, 0, 0)
; QtGeometry(Import_Deck, X, Y, 0, 0)
; QtGeometry(Import_Deck, 0, 0, X, Y)
。 (X,Y,H和W都用实际数字代替。我只是出于示例目的放置变量。)
我也不知道如何使菜单框正常工作。
formatmenu = QToolButton()
formatmenu.setText("Formats")
formatmenu.setMenu(menu)
formatmenu.setPopupMode(QToolButton.MenuButtonPopup)
layout.addWidget(formatmenu, 0, 0)
主菜单栏似乎也不适合我。我尝试复制和粘贴示例代码,但是没有用。
def mainmenufunc(self):
mainMenu = self.menuBar()
fileMenu = mainMenu.addMenu('Decklist')
editMenu = mainMenu.addMenu('Probability')
viewMenu = mainMenu.addMenu('Reccomnended Mana')
self.show()
我不知道我的问题是什么,因为我已经引用了许多不同的指南来尝试解决这些问题。
任何帮助将不胜感激!
MRE代码:
import json
import numpy as np
import math
import os
import PyQt5
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import sys
class Window(QWidget):
def __init__(self):
QWidget.__init__(self)
self.setGeometry(0, 0, 2000, 992)
self.setWindowTitle("MTGCalc")
layout = QGridLayout()
self.setLayout(layout)
Import_Deck = QPushButton("Import Deck", self)
Import_Deck.resize(150, 50)
Import_Deck.adjustSize()
layout.addWidget(Import_Deck, 0, 0, 0, -100)
self.mainmenufunc()
def mainmenufunc(self):
mainMenu = self.menuBar()
fileMenu = mainMenu.addMenu('Decklist')
editMenu = mainMenu.addMenu('Probability')
viewMenu = mainMenu.addMenu('Reccomnended Mana')
self.show()
app = QApplication(sys.argv)
screen = Window()
screen.show()
sys.exit(app.exec_())
_main_()
此错误给出:AttributeError: 'Window' object has no attribute 'menuBar'
。
按钮问题:
#self.mainmenufunc()
#def mainmenufunc(self):
# mainMenu = self.menuBar()
# fileMenu = mainMenu.addMenu('Decklist')
# editMenu = mainMenu.addMenu('Probability')
# viewMenu = mainMenu.addMenu('Reccomnended Mana')
# self.show()
以上所有内容均已注释掉。 实际上,即使在菜单按钮上也不会显示菜单按钮,所以我不知道该怎么做,除了:
formatslider = QToolButton()
formatslider.setText("Formats")
formatslider.setMenu(menu)
formatslider.setPopupMode(QToolButton.MenuButtonPopup)
layout.addWidget(formatslider, 0, 0)
所有这些都被添加了。