Как отобразить имеющиеся драйвера в scrollArea в pyqt5
И так, решил сделать что то вроде своего Driver Booster. Как сделать, что бы по нажатию на кнопку Scan программа смотрела, какие есть дрова на ПК и вставляла их в список scrollArea?
# -*- coding: utf-8 -*-
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("DriversDS")
Form.resize(721, 465)
font = QtGui.QFont()
font.setPointSize(25)
Form.setFont(font)
Form.setStyleSheet("background-color: #343434;")
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(0, 0, 721, 41))
font = QtGui.QFont()
font.setFamily("Aksent")
font.setPointSize(25)
self.label.setFont(font)
self.label.setStyleSheet("background-color: #232323;\n"
"color: white;")
self.label.setTextFormat(QtCore.Qt.AutoText)
self.label.setObjectName("label")
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(680, 5, 31, 31))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.pushButton.setFont(font)
self.pushButton.setStyleSheet("background-color: #232323;\n"
"border: none;\n"
"color: white;")
self.pushButton.setObjectName("pushButton")
self.pushButton.clicked.connect(QtCore.QCoreApplication.instance().quit)
self.progressBar = QtWidgets.QProgressBar(Form)
self.progressBar.setGeometry(QtCore.QRect(5, 422, 711, 31))
self.progressBar.setAutoFillBackground(False)
self.progressBar.setStyleSheet("border-top: 2px solid #232323;\n"
"border-bottom: 2px solid #232323;\n"
"border-right: 2px solid #232323;\n"
"border-left: 2px solid #232323;")
self.progressBar.setProperty("value", 24)
self.progressBar.setTextVisible(False)
self.progressBar.setObjectName("progressBar")
self.scrollArea = QtWidgets.QScrollArea(Form)
self.scrollArea.setGeometry(QtCore.QRect(20, 85, 541, 331))
self.scrollArea.setStyleSheet("border-top: 2px solid #232323;\n"
"border-bottom: 2px solid #232323;\n"
"border-right: 2px solid #232323;\n"
"border-left: 2px solid #232323;")
self.scrollArea.setWidgetResizable(True)
self.scrollArea.setObjectName("scrollArea")
self.scrollAreaWidgetContents = QtWidgets.QWidget()
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 537, 327))
self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
self.scrollArea.setWidget(self.scrollAreaWidgetContents)
self.label_2 = QtWidgets.QLabel(Form)
self.label_2.setGeometry(QtCore.QRect(25, 55, 101, 21))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(20)
font.setBold(False)
font.setWeight(50)
self.label_2.setFont(font)
self.label_2.setStyleSheet("color: white;\n"
"background-color: none;\n"
"border: none;")
self.label_2.setObjectName("label_2")
self.pushButton_2 = QtWidgets.QPushButton(Form)
self.pushButton_2.setGeometry(QtCore.QRect(570, 85, 136, 51))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setItalic(True)
font.setWeight(75)
self.pushButton_2.setFont(font)
self.pushButton_2.setStyleSheet("background-color: #232323;\n"
"color: white;")
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_3 = QtWidgets.QPushButton(Form)
self.pushButton_3.setGeometry(QtCore.QRect(570, 145, 136, 51))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setItalic(True)
font.setWeight(75)
self.pushButton_3.setFont(font)
self.pushButton_3.setStyleSheet("background-color: #232323;\n"
"color: white;")
self.pushButton_3.setObjectName("pushButton_3")
self.pushButton_4 = QtWidgets.QPushButton(Form)
self.pushButton_4.setGeometry(QtCore.QRect(570, 205, 136, 51))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setItalic(True)
font.setWeight(75)
self.pushButton_4.setFont(font)
self.pushButton_4.setStyleSheet("background-color: #232323;\n"
"color: white;")
self.pushButton_4.setObjectName("pushButton_4")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.label.setText(_translate("Form", " DriversDS"))
self.pushButton.setText(_translate("Form", "X"))
self.label_2.setText(_translate("Form", "Drivers:"))
self.pushButton_2.setText(_translate("Form", "Scan"))
self.pushButton_3.setText(_translate("Form", "Update all"))
self.pushButton_4.setText(_translate("Form", "Update"))
class Widget(QtWidgets.QWidget, Ui_Form):
def __init__(self, parent=None):
super(Widget, self).__init__(parent)
self.setupUi(self)
self.setWindowFlags(QtCore.Qt.FramelessWindowHint)# Убрать рамку
self.old_pos = None
# вызывается при нажатии кнопки мыши
def mousePressEvent(self, event):
if event.button() == QtCore.Qt.LeftButton:
self.old_pos = event.pos()
# вызывается при отпускании кнопки мыши
def mouseReleaseEvent(self, event):
if event.button() == QtCore.Qt.LeftButton:
self.old_pos = None
# вызывается всякий раз, когда мышь перемещается
def mouseMoveEvent(self, event):
if not self.old_pos:
return
delta = event.pos() - self.old_pos
self.move(self.pos() + delta)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())
Хотел сделать по макету, но немного его изменил.