Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyQt4:将两个元素嵌套到一个单元格中_Python_Pyqt - Fatal编程技术网

Python PyQt4:将两个元素嵌套到一个单元格中

Python PyQt4:将两个元素嵌套到一个单元格中,python,pyqt,Python,Pyqt,我对PyQt4完全陌生,我正在开发一个用户界面,其中包含一个QGridLayout,一个QLabel、一个QLineEdit、一个QCombobox和两个QPushButton 我知道QGridLayout对象包含以下元素: (0,0): QLabel (1,0): QPushButton (0,1): QLineEdit (1,1): QComboBox (1,2): QPushButton 将这些小部件之一添加到GridLayout的示例说明如下(这是Combobox的示例): 结果如下:

我对PyQt4完全陌生,我正在开发一个用户界面,其中包含一个QGridLayout,一个QLabel、一个QLineEdit、一个QCombobox和两个QPushButton

我知道QGridLayout对象包含以下元素:

(0,0): QLabel
(1,0): QPushButton
(0,1): QLineEdit
(1,1): QComboBox
(1,2): QPushButton
将这些小部件之一添加到GridLayout的示例说明如下(这是Combobox的示例):

结果如下:

我想在空位置(0,2)添加两个新元素(QLineEdit和QLabel)。然而,我不能在这两个方面都加上。所以我想知道,有没有办法将这两个元素“嵌套”到同一个位置(例如使用method.addWidget的一些其他参数),或者我需要用新参数重新设置所有其他元素

以下是我希望得到的示例输出:

代码示例(在位置0,0添加QLineEdit):

到目前为止我所能做的

self.OffsetCond = QtGui.QLineEdit(self.gridLayoutWidget_3) 
self.OffsetCond.setObjectName(_fromUtf8("OffsetCond")) 
self.gridLayout_3.addWidget(self.OffsetCond, 0,2,1,1) 
self.OffsetCond.setMaximumSize(30, 20)

此方法的问题在于QLineEdit停留在(0,2)单元格的左侧(而不是右侧,我希望它位于右侧),如果我尝试将QLineEdit写入同一单元格并在其上写入“偏移量”,它将与QLineEdit重叠

您可以使用嵌套布局和
QGridLayout.addLayout

import PyQt4.QtGui as gui

app = gui.QApplication([])

w = gui.QWidget()

gl = gui.QGridLayout(w)

lab = gui.QLabel(text='Nom')
gl.addWidget(lab,0,0)

le = gui.QLineEdit(text='BarsCond')
gl.addWidget(le,0,1)

##########################

hl = gui.QHBoxLayout()
label_1 = gui.QLabel(text='Offset')
OffsetCond = gui.QLineEdit(text='-1') 
hl.addWidget(label_1)
hl.addWidget(OffsetCond)

gl.addLayout(hl,0,2)

############################

pb1 = gui.QPushButton(text='BarsC')
gl.addWidget(pb1,1,0)

cb = gui.QComboBox()
gl.addWidget(cb,1,1)

pb2 = gui.QPushButton(text='NBars')
gl.addWidget(pb2,1,2)

w.show()
app.exec_()

你能发一个代码的例子吗?如果您提供测试和建议的起点,也许有人可以帮助您。@xndrme,我添加了我感兴趣修改的部分代码,问题是这只是一个庞大用户界面的一部分,所以我不能在这里发布一些可执行代码。
self.OffsetCond = QtGui.QLineEdit(self.gridLayoutWidget_3) 
self.OffsetCond.setObjectName(_fromUtf8("OffsetCond")) 
self.gridLayout_3.addWidget(self.OffsetCond, 0,2,1,1) 
self.OffsetCond.setMaximumSize(30, 20)
import PyQt4.QtGui as gui

app = gui.QApplication([])

w = gui.QWidget()

gl = gui.QGridLayout(w)

lab = gui.QLabel(text='Nom')
gl.addWidget(lab,0,0)

le = gui.QLineEdit(text='BarsCond')
gl.addWidget(le,0,1)

##########################

hl = gui.QHBoxLayout()
label_1 = gui.QLabel(text='Offset')
OffsetCond = gui.QLineEdit(text='-1') 
hl.addWidget(label_1)
hl.addWidget(OffsetCond)

gl.addLayout(hl,0,2)

############################

pb1 = gui.QPushButton(text='BarsC')
gl.addWidget(pb1,1,0)

cb = gui.QComboBox()
gl.addWidget(cb,1,1)

pb2 = gui.QPushButton(text='NBars')
gl.addWidget(pb2,1,2)

w.show()
app.exec_()