I want to develop a frontend human interface for my python script that takes various temperature and DI/DOs from Raspberry pi using custom designed electronic circuits. I have managed the python end. Now i wish to put all the input values and buttons (for operating DOs) on a LCD screen that a user can see and operate.
So far i have got the schematic of a particular application on a tab in a Qwidget using stylesheets. This was done through QT Designer, as i have no knowledge of QT. I can place buttons and indicators also, however they do not move when the widget is resized. In this first image, a test button is placed where i require.
Button properly placed in QT Designer.
But when i resize the window, the background image moves but the button remains.
Button does not move when window resized.
How can i make the button position and size relative to the widget window?
thanks!
EDIT: A similar question asked here. I read in various forums that some combination of resizeEvent() and move() has to be used. But i dont know where to add this to my code. My current code as converted from .ui file output of QT designer to .py:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_TabWidget1(object):
def setupUi(self, TabWidget1):
TabWidget1.setObjectName("TabWidget1")
TabWidget1.setEnabled(True)
TabWidget1.resize(1092, 867)
# TabWidget1.move(0, 0)
self.tab1 = QtWidgets.QWidget()
self.tab1.setAutoFillBackground(False)
self.tab1.setStyleSheet("image:url(:/images/Jaggery Unit Frontend V0.11.png)")
self.tab1.setObjectName("tab1")
self.pushButton = QtWidgets.QPushButton(self.tab1)
self.pushButton.setGeometry(QtCore.QRect(310, 220, 75, 23))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.pushButton.sizePolicy().hasHeightForWidth())
self.pushButton.setSizePolicy(sizePolicy)
self.pushButton.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
self.pushButton.setLayoutDirection(QtCore.Qt.LeftToRight)
self.pushButton.setObjectName("pushButton")
TabWidget1.addTab(self.tab1, "")
self.tab2 = QtWidgets.QWidget()
self.tab2.setObjectName("tab2")
TabWidget1.addTab(self.tab2, "")
self.retranslateUi(TabWidget1)
TabWidget1.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(TabWidget1)
def retranslateUi(self, TabWidget1):
_translate = QtCore.QCoreApplication.translate
TabWidget1.setWindowTitle(_translate("TabWidget1", "TabWidget"))
self.pushButton.setText(_translate("TabWidget1", "PushButton"))
TabWidget1.setTabText(TabWidget1.indexOf(self.tab1), _translate("TabWidget1", "Tab 1"))
TabWidget1.setTabText(TabWidget1.indexOf(self.tab2), _translate("TabWidget1", "Tab 2"))
import resources
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
TabWidget1 = QtWidgets.QTabWidget()
ui = Ui_TabWidget1()
ui.setupUi(TabWidget1)
TabWidget1.show()
sys.exit(app.exec_())