AIR

PyQT5云打印GUI设计

打印机部分由win32编写,Mac系统通通注释掉,哈哈哈,我也没测可以不可以用,学长给的函数

Widget.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
from PyQt5.QtGui import QFont, QPixmap
from PyQt5.QtWidgets import QWidget, QLabel, QLineEdit, QComboBox, QGridLayout, QPushButton, QTableWidget, \
QAbstractItemView, QRadioButton


# import win32print as PrinterOperater


class UI(QWidget):
def __init__(self):
super().__init__()
self.initUI()

def initUI(self):
grid = QGridLayout()
grid.setSpacing(10)

label1 = QLabel(self)
label2 = QLabel(self)
label3 = QLabel(self)

font1 = QFont("Arial", 17, QFont.Black)

label1.setText('系统当前默认打印机:')
label1.setFont(font1)

label2.setText('修改系统默认打印机:')
label2.setFont(font1)

label1_edit = QLineEdit(self)
label1_edit.setReadOnly(True)

# allPrinters = PrinterOperater.EnumPrinters(2)
label2_edit = QComboBox(self)
# label2_edit.addItem(allPrinters)

font2 = QFont("Arial", 14, QFont.Black)

btn1 = QPushButton(self)
btn2 = QPushButton(self)
btn3 = QPushButton(self)

btn1.setFont(font2)
btn2.setFont(font2)
btn3.setFont(font2)

btn1.setText('获取系统所有可用打印机')
btn2.setText('选取当前打印机为默认打印机')
btn3.setText("刷新打印列表")

# btn1.clicked.connect(self.getAllPrinters)
# btn2.clicked.connect(self.getDefaultPrinter)
# btn3.clicked.connect(self.getAllJobs)

Table = QTableWidget(20, 5)
Row_name = [
'任务编号',
'任务名称',
'文件页数',
'打印状态',
'备注',
]
Table.setHorizontalHeaderLabels(Row_name)
Table.setEditTriggers(QAbstractItemView.NoEditTriggers)

image = QPixmap('images/image.png')
label3.setPixmap(image)

CheckBox1 = QRadioButton('上线营业')
CheckBox2 = QRadioButton('暂停营业')

CheckBox1.setChecked(True)
CheckBox1.toggled.connect(lambda: self.btnstate(CheckBox1))
CheckBox1.toggled.connect(lambda: self.btnstate(CheckBox2))

grid.addWidget(label1, 1, 0)
grid.addWidget(label1_edit, 1, 1)
grid.addWidget(btn1, 1, 2, 1, 2)

grid.addWidget(label2, 2, 0)
grid.addWidget(label2_edit, 2, 1)
grid.addWidget(btn2, 2, 2, 1, 2)

grid.addWidget(btn3, 3, 2, 1, 2)

grid.addWidget(Table, 3, 0, 5, 2)

grid.addWidget(label3, 5, 2)

grid.addWidget(CheckBox1, 6, 2)
grid.addWidget(CheckBox2, 7, 2)

self.setLayout(grid)

def btnstate(self, btn):
# 输出按钮1与按钮2的状态,选中还是没选中
if btn.text() == '上线营业':
if btn.isChecked() == True:
print(btn.text() + "is selected")
else:
print(btn.text() + "is deselected")

if btn.text() == "暂停营业":
if btn.isChecked() == True:
print(btn.text() + "is selected")
else:
print(btn.text() + "is deselected")

# def getDefaultPrinter(self):
# defaultPrinter = PrinterOperater.GetDefaultPrinter()
#
# print(defaultPrinter)
#
# def getAllJobs(self):
# defaultPrinter = PrinterOperater.GetDefaultPrinter()
# PyPrinterHANDLE = PrinterOperater.OpenPrinter(defaultPrinter)
# allPrintJobs = PrinterOperater.EnumJobs(PyPrinterHANDLE, 0, 15, 1)
#
# print(allPrintJobs)
#
# def setDefaultPrinter(self):
# tempPrinter = sys.argv[1];
#
# PrinterOperater.SetDefaultPrinter(tempPrinter)
#
# defaultPrinter = PrinterOperater.GetDefaultPrinter()
#
# print(defaultPrinter)

MainWindow.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
from PyQt5.QtGui import QFont, QPixmap
from PyQt5.QtWidgets import QWidget, QLabel, QLineEdit, QComboBox, QGridLayout, QPushButton, QTableWidget, \
QAbstractItemView, QRadioButton


# import win32print as PrinterOperater


class UI(QWidget):
def __init__(self):
super().__init__()
self.initUI()

def initUI(self):
grid = QGridLayout()
grid.setSpacing(10)

label1 = QLabel(self)
label2 = QLabel(self)
label3 = QLabel(self)

font1 = QFont("Arial", 17, QFont.Black)

label1.setText('系统当前默认打印机:')
label1.setFont(font1)

label2.setText('修改系统默认打印机:')
label2.setFont(font1)

label1_edit = QLineEdit(self)
label1_edit.setReadOnly(True)

# allPrinters = PrinterOperater.EnumPrinters(2)
label2_edit = QComboBox(self)
# label2_edit.addItem(allPrinters)

font2 = QFont("Arial", 14, QFont.Black)

btn1 = QPushButton(self)
btn2 = QPushButton(self)
btn3 = QPushButton(self)

btn1.setFont(font2)
btn2.setFont(font2)
btn3.setFont(font2)

btn1.setText('获取系统所有可用打印机')
btn2.setText('选取当前打印机为默认打印机')
btn3.setText("刷新打印列表")

# btn1.clicked.connect(self.getAllPrinters)
# btn2.clicked.connect(self.getDefaultPrinter)
# btn3.clicked.connect(self.getAllJobs)

Table = QTableWidget(20, 5)
Row_name = [
'任务编号',
'任务名称',
'文件页数',
'打印状态',
'备注',
]
Table.setHorizontalHeaderLabels(Row_name)
Table.setEditTriggers(QAbstractItemView.NoEditTriggers)

image = QPixmap('images/image.png')
label3.setPixmap(image)

CheckBox1 = QRadioButton('上线营业')
CheckBox2 = QRadioButton('暂停营业')

CheckBox1.setChecked(True)
CheckBox1.toggled.connect(lambda: self.btnstate(CheckBox1))
CheckBox1.toggled.connect(lambda: self.btnstate(CheckBox2))

grid.addWidget(label1, 1, 0)
grid.addWidget(label1_edit, 1, 1)
grid.addWidget(btn1, 1, 2, 1, 2)

grid.addWidget(label2, 2, 0)
grid.addWidget(label2_edit, 2, 1)
grid.addWidget(btn2, 2, 2, 1, 2)

grid.addWidget(btn3, 3, 2, 1, 2)

grid.addWidget(Table, 3, 0, 5, 2)

grid.addWidget(label3, 5, 2)

grid.addWidget(CheckBox1, 6, 2)
grid.addWidget(CheckBox2, 7, 2)

self.setLayout(grid)

def btnstate(self, btn):
# 输出按钮1与按钮2的状态,选中还是没选中
if btn.text() == '上线营业':
if btn.isChecked() == True:
print(btn.text() + "is selected")
else:
print(btn.text() + "is deselected")

if btn.text() == "暂停营业":
if btn.isChecked() == True:
print(btn.text() + "is selected")
else:
print(btn.text() + "is deselected")

# def getDefaultPrinter(self):
# defaultPrinter = PrinterOperater.GetDefaultPrinter()
#
# print(defaultPrinter)
#
# def getAllJobs(self):
# defaultPrinter = PrinterOperater.GetDefaultPrinter()
# PyPrinterHANDLE = PrinterOperater.OpenPrinter(defaultPrinter)
# allPrintJobs = PrinterOperater.EnumJobs(PyPrinterHANDLE, 0, 15, 1)
#
# print(allPrintJobs)
#
# def setDefaultPrinter(self):
# tempPrinter = sys.argv[1];
#
# PrinterOperater.SetDefaultPrinter(tempPrinter)
#
# defaultPrinter = PrinterOperater.GetDefaultPrinter()
#
# print(defaultPrinter)

Main.py

1
2
3
4
5
6
7
8
9
import sys
from PyQt5.QtWidgets import QApplication

from MainWindow import MainWindow

if __name__ == '__main__':
app = QApplication(sys.argv)
Window = MainWindow()
sys.exit(app.exec_())

 Comments


Blog content follows the Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) License

Use Material X as theme , total visits times .
载入天数...载入时分秒...