Python pyqt只添加框之间的空格
我用pyqt写了一个小例子。它首先绘制一些文本,然后在下面添加三个按钮。但是,按钮下有一些空间。如何删除这些空间 我尝试了Python pyqt只添加框之间的空格,python,pyqt,Python,Pyqt,我用pyqt写了一个小例子。它首先绘制一些文本,然后在下面添加三个按钮。但是,按钮下有一些空间。如何删除这些空间 我尝试了addStrech(1),但是文本不见了 这是我的密码: import sys from PyQt4 import QtGui, QtCore class CardWidget(QtGui.QWidget): def __init__(self): super(CardWidget, self).__init__() self.ini
addStrech(1)
,但是文本不见了
这是我的密码:
import sys
from PyQt4 import QtGui, QtCore
class CardWidget(QtGui.QWidget):
def __init__(self):
super(CardWidget, self).__init__()
self.initUI()
def initUI(self):
lButton = QtGui.QPushButton("left")
mButton = QtGui.QPushButton("middle")
rButton = QtGui.QPushButton("right")
sometext = DrawText()
hbox = QtGui.QHBoxLayout()
hbox.addWidget(lButton)
hbox.addStretch(1)
hbox.addWidget(mButton)
hbox.addStretch(1)
hbox.addWidget(rButton)
WButton = QtGui.QWidget()
WButton.setLayout(hbox)
vbox = QtGui.QVBoxLayout()
vbox.addWidget(sometext)
vbox.addStretch(1)
vbox.addWidget(WButton)
self.setLayout(vbox)
self.setGeometry(300, 300, 480, 370)
self.setWindowTitle('Flashcards')
self.show()
class DrawText(QtGui.QWidget):
def __init__(self):
super(DrawText, self).__init__()
self.initUI()
def initUI(self):
self.text = 'some text'
self.setGeometry(0, 0, 200, 400)
#self.setWindowTitle('Draw text')
self.show()
def paintEvent(self, event):
qp = QtGui.QPainter()
qp.begin(self)
self.drawText(event, qp)
qp.end()
def drawText(self, event, qp):
qp.setPen(QtGui.QColor(168, 34, 3))
qp.setFont(QtGui.QFont('Decorative', 10))
qp.drawText(event.rect(), QtCore.Qt.AlignCenter, self.text)
def main():
app = QtGui.QApplication(sys.argv)
ex = CardWidget()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
我在主窗口中使用了
setFixedSize(int,int)
,以避免addStretch(1)
,如下所示:
def initUI(self):
lButton = QtGui.QPushButton("left")
mButton = QtGui.QPushButton("middle")
rButton = QtGui.QPushButton("right")
sometext = DrawText()
hbox = QtGui.QHBoxLayout()
hbox.addWidget(lButton)
hbox.addWidget(mButton)
hbox.addWidget(rButton)
WButton = QtGui.QWidget()
WButton.setLayout(hbox)
vbox = QtGui.QVBoxLayout()
vbox.addWidget(sometext)
vbox.addWidget(WButton)
self.setLayout(vbox)
self.setGeometry(300, 300, 0, 0)
w = WButton.sizeHint().width()+10
h = WButton.sizeHint().height()+sometext.sizeHint().height()+40
self.setFixedSize(w, h)
self.setWindowTitle('Flashcards')
self.show()
这更像是你想要的吗?您还可以只将高度设置为固定,这样就不会有额外的上下空间