Отобразить информацию выполненной CMD команды в groupBox.

Sergey_2023

Новичок
Пользователь
Мар 22, 2023
14
1
3
Здравствуйте.
Я новичок в Python и пытаюсь написать полезную утилиту для CMD команд.
И хотел бы сделать так что бы при нажатии на кнопку полученная информация отобразилась в
groupBox.
Как это можно сделать, за ранее спасибо.Безымянный.png
main.py

from PyQt5 import uic
from PyQt5.QtWidgets import QApplication
from PyQt5 import uic
from PyQt5.QtWidgets import QApplication
import os
Form, Window = uic.loadUiType("untitled.ui")

app = QApplication([])
window = Window()
form = Form()
form.setupUi(window)
window.show()

def on_click():
os.system("wmic baseboard get product")

form.pushButton.clicked.connect(on_click)

app.exec_()

untitled.ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QGroupBox" name="groupBox">
<property name="geometry">
<rect>
<x>170</x>
<y>20</y>
<width>211</width>
<height>251</height>
</rect>
</property>
<property name="title">
<string>CMD</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>20</x>
<y>260</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>Кнопка</string>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
 

Вложения

  • Python.zip
    1 001 байт · Просмотры: 0
Последнее редактирование:

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 580
457
83
код вставляйте как код, соблюдая отступы - https://itfy.org/threads/kak-ne-nado-zadavat-voprosy.3450/#post-13566

И хотел бы сделать так что бы при нажатии на кнопку полученная информация отобразилась в
groupBox.
что там должно отобразиться?

можно использовать QProcess и из потока вывода записывать в групбокс (груп бокс это просто рамка, туда нужно еще виджеты добавить)
пример
Python:
from PyQt5 import uic
from PyQt5.QtCore import QProcess
from PyQt5.QtWidgets import QApplication, QTextBrowser
import os

Form, Window = uic.loadUiType("untitled.ui")
app = QApplication([])
window = Window()
form = Form()
form.setupUi(window)

textBrowser = QTextBrowser(window)
textBrowser.setFixedWidth(200)
textBrowser.setFixedHeight(231)
textBrowser.move(175, 35)

window.show()


def on_click():
    proc = QProcess()
    proc.start("wmic baseboard get product")
    proc.waitForStarted()
    proc.waitForFinished()
    result = bytearray(proc.readAll()).decode()
    textBrowser.setText(result)
    proc.close()
    # os.system("wmic baseboard get product")


form.pushButton.clicked.connect(on_click)

app.exec_()
 
Последнее редактирование:
  • Мне нравится
Реакции: Sergey_2023

Sergey_2023

Новичок
Пользователь
Мар 22, 2023
14
1
3
код вставляйте как код, соблюдая отступы - https://itfy.org/threads/kak-ne-nado-zadavat-voprosy.3450/#post-13566


что там должно отобразиться?

можно использовать QProcess и из потока вывода записывать в групбокс (груп бокс это просто рамка, туда нужно еще виджеты добавить)
пример
Python:
from PyQt5 import uic
from PyQt5.QtCore import QProcess
from PyQt5.QtWidgets import QApplication, QTextBrowser
import os

Form, Window = uic.loadUiType("untitled.ui")
app = QApplication([])
window = Window()
form = Form()
form.setupUi(window)

textBrowser = QTextBrowser(window)
textBrowser.setFixedWidth(200)
textBrowser.setFixedHeight(231)
textBrowser.move(175, 35)

window.show()


def on_click():
    proc = QProcess()
    proc.start("wmic baseboard get product")
    proc.waitForStarted()
    proc.waitForFinished()
    result = bytearray(proc.readAll()).decode()
    textBrowser.setText(result)
    proc.close()
    # os.system("wmic baseboard get product")


form.pushButton.clicked.connect(on_click)

app.exec_()
Все понял, большое спасибо,.
Теперь буду знать как это работает.
 

Sergey_2023

Новичок
Пользователь
Мар 22, 2023
14
1
3
Под разобрался и немного переписал код.
Python:
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow, QTextBrowser
from PyQt5.QtCore import QProcess
import sys

class Window(QMainWindow):
    def __init__(self):
        super(Window, self).__init__()

        self.setWindowTitle('Программа')
        self.setGeometry(300, 250, 350, 200)

        self.btn = QtWidgets.QPushButton(self)
        self.btn.move(70, 150)
        self.btn.setText('Старт')
        self.btn.setFixedWidth(200)
        self.btn.clicked.connect(self.add_label)

        self.textBrowser = QTextBrowser(self)
        self.textBrowser.setText('Отобразить модель материнской платы')
        self.textBrowser.setFixedWidth(200)
        self.textBrowser.setFixedHeight(101)
        self.textBrowser.move(70, 35)

    def add_label(self):
        self.proc = QProcess()
        self.proc.start('wmic baseboard get product')
        self.proc.waitForStarted()
        self.proc.waitForFinished()
        self.result = bytearray(self.proc.readAll()).decode()
        self.textBrowser.setText(self.result)
        self.proc.close()

def application():
    app = QApplication(sys.argv)
    window = Window()

    window.show()
    sys.exit(app.exec_())

if __name__ == "__main__":
    application()
 

Вложения

  • Безымянный.png
    Безымянный.png
    3,7 КБ · Просмотры: 2
  • Мне нравится
Реакции: regnor

Форум IT Специалистов