Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 05.11.2021
Сообщений: 7
PyQt5

Перенести функции в класс

24.12.2022, 23:03. Показов 702. Ответов 6

Студворк — интернет-сервис помощи студентам
Приветствую всех. Хотел бы попросить помощи. Как мне все функции перенести в класс с параметром QMainWindow, например будет выглядить так ( class Test(QMainWindow): ). Пытался сделать, но увы не получается.
Python
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
import sys
import config
from PyQt5 import QtWidgets
from LoginWindow import LoginWindow
from RestoreWindow import RestoreWindow
from RegistrationWindow import RegistrationWindow
from MainWindow import MainWindow
from NewContactWindow import NewContactWindow
from EditWindow import EditWindow
from PyQt5.QtWidgets import *
from PyQt5 import QtGui
 
 
def log_out():
    cursor = connection.cursor()
    update_query = "Update users set autologin = %s where name = %s"
    cursor.execute(update_query, (False, MainWindow.label_user.text()))
    connection.commit()
    MainWindow.close()
    LoginWindow.show()
 
 
def open_registration_window():
    RegistrationWindow.show()
    LoginWindow.close()
 
    def go_back():
        RegistrationWindow.close()
        LoginWindow.show()
 
    RegistrationWindow.cancel_btn.clicked.connect(go_back)
 
 
def open_restore_window():
    RestoreWindow.show()
    LoginWindow.close()
 
    def go_back():
        RestoreWindow.close()
        LoginWindow.show()
 
    RestoreWindow.cancel_btn.clicked.connect(go_back)
 
 
def clear_login_fields():
    LoginWindow.login_input.clear()
    LoginWindow.password_input.clear()
 
 
def registration():
    cursor = connection.cursor()
    registration_query = "Select name from users Where name = %s"
    cursor.execute(registration_query, (RegistrationWindow.login_input.text()))
    result_registration_query = cursor.fetchone()
    if result_registration_query is None:
        if len(RegistrationWindow.login_input.text()) < 4 or len(RegistrationWindow.password_input.text()) < 6:
            error_low_len = QMessageBox()
            font = QtGui.QFont()
            font.setPointSize(18)
            error_low_len.setFont(font)
            error_low_len.setStyleSheet("background-color: rgb(83, 83, 83);\n"
                                        "color: rgb(186, 186, 186);")
            error_low_len.setWindowTitle("Ошибка!")
            error_low_len.setText("Слишком короткий пароль или логин!")
            error_low_len.setInformativeText("Логин должен содержать не менее 4 символов, пароль - 6")
            error_low_len.setIcon(QMessageBox.Warning)
            error_low_len.setStandardButtons(QMessageBox.Ok)
            error_low_len.exec_()
        elif RegistrationWindow.password_input.text() != RegistrationWindow.password_again_input.text():
            error_different_value = QMessageBox()
            font = QtGui.QFont()
            font.setPointSize(18)
            error_different_value.setFont(font)
            error_different_value.setStyleSheet("background-color: rgb(83, 83, 83);\n"
                                                "color: rgb(186, 186, 186);")
            error_different_value.setWindowTitle("Ошибка!")
            error_different_value.setText("Данные в полях для ввода пароля отличаются!")
            error_different_value.setIcon(QMessageBox.Warning)
            error_different_value.setStandardButtons(QMessageBox.Ok)
            error_different_value.exec_()
        else:
            insert_query = "Insert INTO users (name, password, dob, autologin)" \
                           + "VALUES (%s, %s, %s, %s)"
            cursor.execute(insert_query, (RegistrationWindow.login_input.text(),
                                          RegistrationWindow.password_input.text(),
                                          RegistrationWindow.dob_dateEdit.date().toString('yyyy-MM-dd'), False))
            connection.commit()
            MainWindow.label_user.setText(RegistrationWindow.login_input.text())
            RegistrationWindow.close()
            MainWindow.show()
    else:
        error_existing_login = QMessageBox()
        font = QtGui.QFont()
        font.setPointSize(18)
        error_existing_login.setFont(font)
        error_existing_login.setStyleSheet("background-color: rgb(83, 83, 83);\n"
                                           "color: rgb(186, 186, 186);")
        error_existing_login.setWindowTitle("Ошибка!")
        error_existing_login.setText("Такая учетная запись уже существует!")
        error_existing_login.setIcon(QMessageBox.Warning)
        error_existing_login.setStandardButtons(QMessageBox.Ok)
        error_existing_login.exec_()
 
 
def log_in():
    cursor = connection.cursor()
    login_query = "Select name, password from users Where name = %s and password = %s"
    cursor.execute(login_query, (LoginWindow.login_input.text(), LoginWindow.password_input.text()))
    result_login_query = cursor.fetchone()
    if result_login_query is None:
        error_missmatch_login = QMessageBox()
        font = QtGui.QFont()
        font.setPointSize(18)
        error_missmatch_login.setFont(font)
        error_missmatch_login.setStyleSheet("background-color: rgb(83, 83, 83);\n"
                                            "color: rgb(186, 186, 186);")
        error_missmatch_login.setWindowTitle("Ошибка!")
        error_missmatch_login.setText("Пользователя с такими учетными данными не существует!")
        error_missmatch_login.setInformativeText("Проверьте верность заполнения данных. Возможно, включен CAPSLOCK!")
        error_missmatch_login.setIcon(QMessageBox.Warning)
        error_missmatch_login.setStandardButtons(QMessageBox.Ok)
        error_missmatch_login.exec_()
    else:
        if LoginWindow.checkBox_remember_me.isChecked():
            insert_query = "Update users set autologin = %s where name = %s"
            cursor.execute(insert_query, (True, LoginWindow.login_input.text()))
            connection.commit()
        elif not LoginWindow.checkBox_remember_me.isChecked():
            insert_query = "Update users set autologin = %s where name = %s"
            cursor.execute(insert_query, (False, LoginWindow.login_input.text()))
            connection.commit()
        LoginWindow.close()
        MainWindow.label_user.setText(LoginWindow.login_input.text())
        LoginWindow.login_input.clear()
        LoginWindow.password_input.clear()
        notification()
        refresh()
        MainWindow.show()
 
 
def open_new_contact_window():
    NewContactWindow.show()
 
    def go_back():
        NewContactWindow.close()
 
    NewContactWindow.cancel_btn.clicked.connect(go_back)
 
 
def changed_to_1page():
    MainWindow.stackedWidget.setCurrentWidget(MainWindow.page_1)
 
 
def changed_to_2page():
    MainWindow.stackedWidget.setCurrentWidget(MainWindow.page_2)
 
 
def changed_to_3page():
    MainWindow.stackedWidget.setCurrentWidget(MainWindow.page_3)
 
 
def changed_to_4page():
    MainWindow.stackedWidget.setCurrentWidget(MainWindow.page_4)
 
 
def changed_to_5page():
    MainWindow.stackedWidget.setCurrentWidget(MainWindow.page_5)
 
 
def changed_to_6page():
    MainWindow.stackedWidget.setCurrentWidget(MainWindow.page_6)
 
 
def changed_to_7page():
    MainWindow.stackedWidget.setCurrentWidget(MainWindow.page_7)
 
 
def changed_to_8page():
    MainWindow.stackedWidget.setCurrentWidget(MainWindow.page_8)
 
 
def changed_to_9page():
    MainWindow.stackedWidget.setCurrentWidget(MainWindow.page_9)
 
 
def changed_to_10page():
    MainWindow.stackedWidget.setCurrentWidget(MainWindow.page_10)
 
 
def changed_to_11page():
    MainWindow.stackedWidget.setCurrentWidget(MainWindow.page_11)
 
 
def changed_to_12page():
    MainWindow.stackedWidget.setCurrentWidget(MainWindow.page_12)
 
 
def changed_to_13page():
    MainWindow.stackedWidget.setCurrentWidget(MainWindow.page_13)
 
 
def refresh():
    cursor = connection.cursor()
    refresh_query = "Select * from contacts"
    cursor.execute(refresh_query)
    resulting = cursor.fetchall()
    MainWindow.tableWidget_1.setRowCount(0)
    MainWindow.tableWidget_2.setRowCount(0)
    MainWindow.tableWidget_3.setRowCount(0)
    MainWindow.tableWidget_4.setRowCount(0)
    MainWindow.tableWidget_5.setRowCount(0)
    MainWindow.tableWidget_6.setRowCount(0)
    MainWindow.tableWidget_7.setRowCount(0)
    MainWindow.tableWidget_8.setRowCount(0)
    MainWindow.tableWidget_9.setRowCount(0)
    MainWindow.tableWidget_10.setRowCount(0)
    MainWindow.tableWidget_11.setRowCount(0)
    for item in resulting:
        if str(item["fullname"])[:1].lower().startswith("a") or str(item["fullname"])[:1].lower().startswith("b"):
            row_position = MainWindow.tableWidget_1.rowCount()
            MainWindow.tableWidget_1.insertRow(row_position)
            MainWindow.tableWidget_1.setItem(row_position, 0, QTableWidgetItem(str(item["fullname"])))
            MainWindow.tableWidget_1.setItem(row_position, 1, QTableWidgetItem(str(item["telephone_number"])))
            MainWindow.tableWidget_1.setItem(row_position, 2, QTableWidgetItem(str(item["dob"])))
        if str(item["fullname"])[:1].lower().startswith("c") or str(item["fullname"])[:1].lower().startswith("d"):
            row_position = MainWindow.tableWidget_2.rowCount()
            MainWindow.tableWidget_2.insertRow(row_position)
            MainWindow.tableWidget_2.setItem(row_position, 0, QTableWidgetItem(str(item["fullname"])))
            MainWindow.tableWidget_2.setItem(row_position, 1, QTableWidgetItem(str(item["telephone_number"])))
            MainWindow.tableWidget_2.setItem(row_position, 2, QTableWidgetItem(str(item["dob"])))
        if str(item["fullname"])[:1].lower().startswith("e") or str(item["fullname"])[:1].lower().startswith("f"):
            row_position = MainWindow.tableWidget_3.rowCount()
            MainWindow.tableWidget_3.insertRow(row_position)
            MainWindow.tableWidget_3.setItem(row_position, 0, QTableWidgetItem(str(item["fullname"])))
            MainWindow.tableWidget_3.setItem(row_position, 1, QTableWidgetItem(str(item["telephone_number"])))
            MainWindow.tableWidget_3.setItem(row_position, 2, QTableWidgetItem(str(item["dob"])))
        if str(item["fullname"])[:1].lower().startswith("g") or str(item["fullname"])[:1].lower().startswith("h") or \
                str(item["fullname"])[:1].lower().startswith("i") or str(item["fullname"])[:1].lower().startswith("j"):
            row_position = MainWindow.tableWidget_4.rowCount()
            MainWindow.tableWidget_4.insertRow(row_position)
            MainWindow.tableWidget_4.setItem(row_position, 0, QTableWidgetItem(str(item["fullname"])))
            MainWindow.tableWidget_4.setItem(row_position, 1, QTableWidgetItem(str(item["telephone_number"])))
            MainWindow.tableWidget_4.setItem(row_position, 2, QTableWidgetItem(str(item["dob"])))
        if str(item["fullname"])[:1].lower().startswith("k") or str(item["fullname"])[:1].lower().startswith("l"):
            row_position = MainWindow.tableWidget_5.rowCount()
            MainWindow.tableWidget_5.insertRow(row_position)
            MainWindow.tableWidget_5.setItem(row_position, 0, QTableWidgetItem(str(item["fullname"])))
            MainWindow.tableWidget_5.setItem(row_position, 1, QTableWidgetItem(str(item["telephone_number"])))
            MainWindow.tableWidget_5.setItem(row_position, 2, QTableWidgetItem(str(item["dob"])))
        if str(item["fullname"])[:1].lower().startswith("m") or str(item["fullname"])[:1].lower().startswith("n"):
            row_position = MainWindow.tableWidget_6.rowCount()
            MainWindow.tableWidget_6.insertRow(row_position)
            MainWindow.tableWidget_6.setItem(row_position, 0, QTableWidgetItem(str(item["fullname"])))
            MainWindow.tableWidget_6.setItem(row_position, 1, QTableWidgetItem(str(item["telephone_number"])))
            MainWindow.tableWidget_6.setItem(row_position, 2, QTableWidgetItem(str(item["dob"])))
        if str(item["fullname"])[:1].lower().startswith("o") or str(item["fullname"])[:1].lower().startswith("p"):
            row_position = MainWindow.tableWidget_7.rowCount()
            MainWindow.tableWidget_7.insertRow(row_position)
            MainWindow.tableWidget_7.setItem(row_position, 0, QTableWidgetItem(str(item["fullname"])))
            MainWindow.tableWidget_7.setItem(row_position, 1, QTableWidgetItem(str(item["telephone_number"])))
            MainWindow.tableWidget_7.setItem(row_position, 2, QTableWidgetItem(str(item["dob"])))
        if str(item["fullname"])[:1].lower().startswith("q") or str(item["fullname"])[:1].lower().startswith("r"):
            row_position = MainWindow.tableWidget_8.rowCount()
            MainWindow.tableWidget_8.insertRow(row_position)
            MainWindow.tableWidget_8.setItem(row_position, 0, QTableWidgetItem(str(item["fullname"])))
            MainWindow.tableWidget_8.setItem(row_position, 1, QTableWidgetItem(str(item["telephone_number"])))
            MainWindow.tableWidget_8.setItem(row_position, 2, QTableWidgetItem(str(item["dob"])))
        if str(item["fullname"])[:1].lower().startswith("s") or str(item["fullname"])[:1].lower().startswith("t"):
            row_position = MainWindow.tableWidget_9.rowCount()
            MainWindow.tableWidget_9.insertRow(row_position)
            MainWindow.tableWidget_9.setItem(row_position, 0, QTableWidgetItem(str(item["fullname"])))
            MainWindow.tableWidget_9.setItem(row_position, 1, QTableWidgetItem(str(item["telephone_number"])))
            MainWindow.tableWidget_9.setItem(row_position, 2, QTableWidgetItem(str(item["dob"])))
        if str(item["fullname"])[:1].lower().startswith("u") or str(item["fullname"])[:1].lower().startswith("v"):
            row_position = MainWindow.tableWidget_10.rowCount()
            MainWindow.tableWidget_10.insertRow(row_position)
            MainWindow.tableWidget_10.setItem(row_position, 0, QTableWidgetItem(str(item["fullname"])))
            MainWindow.tableWidget_10.setItem(row_position, 1, QTableWidgetItem(str(item["telephone_number"])))
            MainWindow.tableWidget_10.setItem(row_position, 2, QTableWidgetItem(str(item["dob"])))
        if str(item["fullname"])[:1].lower().startswith("w") or str(item["fullname"])[:1].lower().startswith("x") or \
                str(item["fullname"])[:1].lower().startswith("y") or str(item["fullname"])[:1].lower().startswith("z"):
            row_position = MainWindow.tableWidget_11.rowCount()
            MainWindow.tableWidget_11.insertRow(row_position)
            MainWindow.tableWidget_11.setItem(row_position, 0, QTableWidgetItem(str(item["fullname"])))
            MainWindow.tableWidget_11.setItem(row_position, 1, QTableWidgetItem(str(item["telephone_number"])))
            MainWindow.tableWidget_11.setItem(row_position, 2, QTableWidgetItem(str(item["dob"])))
 
def add_new_contact():
    cursor = connection.cursor()
    info_check_query = "Select fullname from contacts Where fullname = %s and telephone_number = %s and dob = %s"
    cursor.execute(info_check_query, (NewContactWindow.name_input.text(),
                                      NewContactWindow.telephone_number_input.text(),
                                      NewContactWindow.dob_dateEdit.date().toString('yyyy-MM-dd')))
    result_info_check_query = cursor.fetchone()
    if result_info_check_query is None:
        if len(NewContactWindow.name_input.text()) > 1 and len(NewContactWindow.telephone_number_input.text()) > 5:
            insert_query = "Insert INTO contacts (fullname, telephone_number, dob)" \
                           + "VALUES (%s, %s, %s)"
            cursor.execute(insert_query, (NewContactWindow.name_input.text(),
                                          NewContactWindow.telephone_number_input.text(),
                                          NewContactWindow.dob_dateEdit.date().toString('yyyy-MM-dd')))
            connection.commit()
            success = QMessageBox()
            font = QtGui.QFont()
            font.setPointSize(18)
            success.setFont(font)
            success.setStyleSheet("background-color: rgb(83, 83, 83);\n"
                                  "color: rgb(186, 186, 186);")
            success.setWindowTitle("Успех!!!")
            success.setText("Контакт успешно добавлен!")
            success.setStandardButtons(QMessageBox.Ok)
            success.exec_()
            NewContactWindow.name_input.clear()
            NewContactWindow.telephone_number_input.clear()
            NewContactWindow.dob_dateEdit.clear()
            NewContactWindow.close()
        else:
            edit_error = QMessageBox()
            font = QtGui.QFont()
            font.setPointSize(18)
            edit_error.setFont(font)
            edit_error.setStyleSheet("background-color: rgb(83, 83, 83);\n"
                                     "color: rgb(186, 186, 186);")
            edit_error.setWindowTitle("Ошибка!")
            edit_error.setText("Имя контакта должно содержать не менее 2-х символов, номер телефона - 6-ти.")
            edit_error.setStandardButtons(QMessageBox.Ok)
            edit_error.exec_()
    else:
        error_same_contact = QMessageBox()
        font = QtGui.QFont()
        font.setPointSize(18)
        error_same_contact.setFont(font)
        error_same_contact.setStyleSheet("background-color: rgb(83, 83, 83);\n"
                                         "color: rgb(186, 186, 186);")
        error_same_contact.setWindowTitle("Ошибка!")
        error_same_contact.setText("Контакт с введенными данными уже существует!")
        error_same_contact.setIcon(QMessageBox.Warning)
        error_same_contact.setStandardButtons(QMessageBox.Ok)
        error_same_contact.exec_()
 
 
def successful_editing():
    event = QMessageBox()
    font = QtGui.QFont()
    font.setPointSize(18)
    event.setFont(font)
    event.setStyleSheet("background-color: rgb(83, 83, 83);\n"
                        "color: rgb(186, 186, 186);")
    event.setWindowTitle("Успех!!")
    event.setText("Данные успешно отредактированы!")
    event.setIcon(QMessageBox.Warning)
    event.setStandardButtons(QMessageBox.Ok)
    event.exec_()
    EditWindow.close()
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.12.2022, 23:03
Ответы с готовыми решениями:

Перенести условие из Формы в Класс
Преподаватель сказал перенести условие( на подобии как (a &lt;= 0) || (b &lt;= 0) || (c &lt;= 0)) из формы в Класс, подскажите как это правильно...

Помогите MFC-ый класс перенести в DLL
Переношу код из Windows- прилож. (MFC) в DLL. В приложении использован графический объект - CRgn Заинклюдил файл afxwin.h -(без него...

Добавить класс и туда перенести методы
Здравствуйте, нужно сделать работу по ООП, сказали нужно добавить класс и туда перенести методы. Не понимаю, что именно туда нужно...

6
0 / 0 / 0
Регистрация: 05.11.2021
Сообщений: 7
24.12.2022, 23:03  [ТС]
Python
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
def delete_contact():
    if MainWindow.tableWidget_1.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_1.currentRow()
        column = MainWindow.tableWidget_1.currentColumn()
        if column == 0:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_1.item(row, column).text(),
                                          MainWindow.tableWidget_1.item(row, column+1).text(),
                                          MainWindow.tableWidget_1.item(row, column+2).text()))
            connection.commit()
        if column == 1:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_1.item(row, column-1).text(),
                                          MainWindow.tableWidget_1.item(row, column).text(),
                                          MainWindow.tableWidget_1.item(row, column+1).text()))
            connection.commit()
        if column == 2:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_1.item(row, column-2).text(),
                                          MainWindow.tableWidget_1.item(row, column-1).text(),
                                          MainWindow.tableWidget_1.item(row, column).text()))
            connection.commit()
    if MainWindow.tableWidget_2.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_2.currentRow()
        column = MainWindow.tableWidget_2.currentColumn()
        if column == 0:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_2.item(row, column).text(),
                                          MainWindow.tableWidget_2.item(row, column+1).text(),
                                          MainWindow.tableWidget_2.item(row, column+2).text()))
            connection.commit()
        if column == 1:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_2.item(row, column-1).text(),
                                          MainWindow.tableWidget_2.item(row, column).text(),
                                          MainWindow.tableWidget_2.item(row, column+1).text()))
            connection.commit()
        if column == 2:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_2.item(row, column-2).text(),
                                          MainWindow.tableWidget_2.item(row, column-1).text(),
                                          MainWindow.tableWidget_2.item(row, column).text()))
            connection.commit()
    if MainWindow.tableWidget_3.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_3.currentRow()
        column = MainWindow.tableWidget_3.currentColumn()
        if column == 0:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_3.item(row, column).text(),
                                          MainWindow.tableWidget_3.item(row, column+1).text(),
                                          MainWindow.tableWidget_3.item(row, column+2).text()))
            connection.commit()
        if column == 1:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_3.item(row, column-1).text(),
                                          MainWindow.tableWidget_3.item(row, column).text(),
                                          MainWindow.tableWidget_3.item(row, column+1).text()))
            connection.commit()
        if column == 2:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_3.item(row, column-2).text(),
                                          MainWindow.tableWidget_3.item(row, column-1).text(),
                                          MainWindow.tableWidget_3.item(row, column).text()))
            connection.commit()
    if MainWindow.tableWidget_4.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_4.currentRow()
        column = MainWindow.tableWidget_4.currentColumn()
        if column == 0:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_4.item(row, column).text(),
                                          MainWindow.tableWidget_4.item(row, column+1).text(),
                                          MainWindow.tableWidget_4.item(row, column+2).text()))
            connection.commit()
        if column == 1:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_4.item(row, column-1).text(),
                                          MainWindow.tableWidget_4.item(row, column).text(),
                                          MainWindow.tableWidget_4.item(row, column+1).text()))
            connection.commit()
        if column == 2:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_4.item(row, column-2).text(),
                                          MainWindow.tableWidget_4.item(row, column-1).text(),
                                          MainWindow.tableWidget_4.item(row, column).text()))
            connection.commit()
    if MainWindow.tableWidget_5.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_5.currentRow()
        column = MainWindow.tableWidget_5.currentColumn()
        if column == 0:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_5.item(row, column).text(),
                                          MainWindow.tableWidget_5.item(row, column+1).text(),
                                          MainWindow.tableWidget_5.item(row, column+2).text()))
            connection.commit()
        if column == 1:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_5.item(row, column-1).text(),
                                          MainWindow.tableWidget_5.item(row, column).text(),
                                          MainWindow.tableWidget_5.item(row, column+1).text()))
            connection.commit()
        if column == 2:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_5.item(row, column-2).text(),
                                          MainWindow.tableWidget_5.item(row, column-1).text(),
                                          MainWindow.tableWidget_5.item(row, column).text()))
            connection.commit()
    if MainWindow.tableWidget_6.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_6.currentRow()
        column = MainWindow.tableWidget_6.currentColumn()
        if column == 0:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_6.item(row, column).text(),
                                          MainWindow.tableWidget_6.item(row, column+1).text(),
                                          MainWindow.tableWidget_6.item(row, column+2).text()))
            connection.commit()
        if column == 1:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_6.item(row, column-1).text(),
                                          MainWindow.tableWidget_6.item(row, column).text(),
                                          MainWindow.tableWidget_6.item(row, column+1).text()))
            connection.commit()
        if column == 2:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_6.item(row, column-2).text(),
                                          MainWindow.tableWidget_6.item(row, column-1).text(),
                                          MainWindow.tableWidget_6.item(row, column).text()))
            connection.commit()
    if MainWindow.tableWidget_7.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_7.currentRow()
        column = MainWindow.tableWidget_7.currentColumn()
        if column == 0:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_7.item(row, column).text(),
                                          MainWindow.tableWidget_7.item(row, column+1).text(),
                                          MainWindow.tableWidget_7.item(row, column+2).text()))
            connection.commit()
        if column == 1:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_7.item(row, column-1).text(),
                                          MainWindow.tableWidget_7.item(row, column).text(),
                                          MainWindow.tableWidget_7.item(row, column+1).text()))
            connection.commit()
        if column == 2:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_7.item(row, column-2).text(),
                                          MainWindow.tableWidget_7.item(row, column-1).text(),
                                          MainWindow.tableWidget_7.item(row, column).text()))
            connection.commit()
    if MainWindow.tableWidget_8.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_8.currentRow()
        column = MainWindow.tableWidget_8.currentColumn()
        if column == 0:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_8.item(row, column).text(),
                                          MainWindow.tableWidget_8.item(row, column+1).text(),
                                          MainWindow.tableWidget_8.item(row, column+2).text()))
            connection.commit()
        if column == 1:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_8.item(row, column-1).text(),
                                          MainWindow.tableWidget_8.item(row, column).text(),
                                          MainWindow.tableWidget_8.item(row, column+1).text()))
            connection.commit()
        if column == 2:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_8.item(row, column-2).text(),
                                          MainWindow.tableWidget_8.item(row, column-1).text(),
                                          MainWindow.tableWidget_8.item(row, column).text()))
            connection.commit()
    if MainWindow.tableWidget_9.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_9.currentRow()
        column = MainWindow.tableWidget_9.currentColumn()
        if column == 0:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_9.item(row, column).text(),
                                          MainWindow.tableWidget_9.item(row, column+1).text(),
                                          MainWindow.tableWidget_9.item(row, column+2).text()))
            connection.commit()
        if column == 1:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_9.item(row, column-1).text(),
                                          MainWindow.tableWidget_9.item(row, column).text(),
                                          MainWindow.tableWidget_9.item(row, column+1).text()))
            connection.commit()
        if column == 2:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_9.item(row, column-2).text(),
                                          MainWindow.tableWidget_9.item(row, column-1).text(),
                                          MainWindow.tableWidget_9.item(row, column).text()))
            connection.commit()
    if MainWindow.tableWidget_10.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_10.currentRow()
        column = MainWindow.tableWidget_10.currentColumn()
        if column == 0:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_10.item(row, column).text(),
                                          MainWindow.tableWidget_10.item(row, column+1).text(),
                                          MainWindow.tableWidget_10.item(row, column+2).text()))
            connection.commit()
        if column == 1:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_10.item(row, column-1).text(),
                                          MainWindow.tableWidget_10.item(row, column).text(),
                                          MainWindow.tableWidget_10.item(row, column+1).text()))
            connection.commit()
        if column == 2:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_10.item(row, column-2).text(),
                                          MainWindow.tableWidget_10.item(row, column-1).text(),
                                          MainWindow.tableWidget_10.item(row, column).text()))
            connection.commit()
    if MainWindow.tableWidget_11.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_11.currentRow()
        column = MainWindow.tableWidget_11.currentColumn()
        if column == 0:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_11.item(row, column).text(),
                                          MainWindow.tableWidget_11.item(row, column+1).text(),
                                          MainWindow.tableWidget_11.item(row, column+2).text()))
            connection.commit()
        if column == 1:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_11.item(row, column-1).text(),
                                          MainWindow.tableWidget_11.item(row, column).text(),
                                          MainWindow.tableWidget_11.item(row, column+1).text()))
            connection.commit()
        if column == 2:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_11.item(row, column-2).text(),
                                          MainWindow.tableWidget_11.item(row, column-1).text(),
                                          MainWindow.tableWidget_11.item(row, column).text()))
            connection.commit()
    if MainWindow.tableWidget_12.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_12.currentRow()
        column = MainWindow.tableWidget_12.currentColumn()
        if column == 0:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_12.item(row, column).text(),
                                          MainWindow.tableWidget_12.item(row, column+1).text(),
                                          MainWindow.tableWidget_12.item(row, column+2).text()))
            connection.commit()
        if column == 1:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_12.item(row, column-1).text(),
                                          MainWindow.tableWidget_12.item(row, column).text(),
                                          MainWindow.tableWidget_12.item(row, column+1).text()))
            connection.commit()
        if column == 2:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_12.item(row, column-2).text(),
                                          MainWindow.tableWidget_12.item(row, column-1).text(),
                                          MainWindow.tableWidget_12.item(row, column).text()))
            connection.commit()
    if MainWindow.tableWidget_13.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_13.currentRow()
        column = MainWindow.tableWidget_13.currentColumn()
        if column == 0:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_13.item(row, column).text(),
                                          MainWindow.tableWidget_13.item(row, column+1).text(),
                                          MainWindow.tableWidget_13.item(row, column+2).text()))
            connection.commit()
        if column == 1:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_13.item(row, column-1).text(),
                                          MainWindow.tableWidget_13.item(row, column).text(),
                                          MainWindow.tableWidget_13.item(row, column+1).text()))
            connection.commit()
        if column == 2:
            delete_query = "Delete from contacts where fullname = %s and telephone_number = %s and dob = %s"
            cursor.execute(delete_query, (MainWindow.tableWidget_13.item(row, column-2).text(),
                                          MainWindow.tableWidget_13.item(row, column-1).text(),
                                          MainWindow.tableWidget_13.item(row, column).text()))
            connection.commit()
    successful_deletion()
    EditWindow.close()
 
 
def open_edit_data_window():
    EditWindow.show()
 
 
def few_characters():
    few_characters_message = QMessageBox()
    font = QtGui.QFont()
    font.setPointSize(18)
    few_characters_message.setFont(font)
    few_characters_message.setStyleSheet("background-color: rgb(83, 83, 83);\n"
                                         "color: rgb(186, 186, 186);")
    few_characters_message.setWindowTitle("Ошибка!")
    few_characters_message.setText("Редактирумое поле должно содержать более 2-х символов!")
    few_characters_message.setIcon(QMessageBox.Warning)
    few_characters_message.setStandardButtons(QMessageBox.Ok)
    few_characters_message.exec_()
 
 
def successful_deletion():
    delete_contact_message = QMessageBox()
    font = QtGui.QFont()
    font.setPointSize(18)
    delete_contact_message.setFont(font)
    delete_contact_message.setStyleSheet("background-color: rgb(83, 83, 83);\n"
                                         "color: rgb(186, 186, 186);")
    delete_contact_message.setWindowTitle("Удаление контакта!")
    delete_contact_message.setText("Контакт успешно удален!")
    delete_contact_message.setIcon(QMessageBox.Warning)
    delete_contact_message.setStandardButtons(QMessageBox.Ok)
    delete_contact_message.exec_()
 
 
def right_format_date():
    right_format_date_message = QMessageBox()
    font = QtGui.QFont()
    font.setPointSize(18)
    right_format_date_message.setFont(font)
    right_format_date_message.setStyleSheet("background-color: rgb(83, 83, 83);\n"
                                            "color: rgb(186, 186, 186);")
    right_format_date_message.setWindowTitle("Ошибка!")
    right_format_date_message.setText("Дату рождения необходимо вводить в формате: гггг-мм-дд, "
                                      "где гггг - год рождения, мм - месяц рождения, дд - день рождения.")
    right_format_date_message.setIcon(QMessageBox.Warning)
    right_format_date_message.setStandardButtons(QMessageBox.Ok)
    right_format_date_message.exec_()
0
0 / 0 / 0
Регистрация: 05.11.2021
Сообщений: 7
24.12.2022, 23:06  [ТС]
Python
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
def edit_data_page():
    if MainWindow.tableWidget_1.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_1.currentRow()
        column = MainWindow.tableWidget_1.currentColumn()
        if column == 0:
            if len(EditWindow.edit_input.text()) < 2:
                few_characters()
            else:
                insert_query = "Update contacts set fullname = %s where telephone_number = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_1.item(row, column+1).text(),
                                              MainWindow.tableWidget_1.item(row, column+2).text()))
                successful_editing()
                connection.commit()
        if column == 1:
            if len(EditWindow.edit_input.text()) < 6:
                few_characters()
            else:
                insert_query = "Update contacts set telephone_number = %s where fullname = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_1.item(row, column-1).text(),
                                              MainWindow.tableWidget_1.item(row, column+1).text()))
                successful_editing()
                connection.commit()
        if column == 2:
            try:
                insert_query = "Update contacts set dob = %s where fullname = %s and telephone_number = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_1.item(row, column-2).text(),
                                              MainWindow.tableWidget_1.item(row, column-1).text()))
                successful_editing()
                connection.commit()
            except:
                right_format_date()
    if MainWindow.tableWidget_2.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_2.currentRow()
        column = MainWindow.tableWidget_2.currentColumn()
        if column == 0:
            if len(EditWindow.edit_input.text()) < 2:
                few_characters()
            else:
                insert_query = "Update contacts set fullname = %s where telephone_number = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_2.item(row, column + 1).text(),
                                              MainWindow.tableWidget_2.item(row, column + 2).text()))
                successful_editing()
                connection.commit()
        if column == 1:
            if len(EditWindow.edit_input.text()) < 6:
                few_characters()
            else:
                insert_query = "Update contacts set telephone_number = %s where fullname = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_2.item(row, column - 1).text(),
                                              MainWindow.tableWidget_2.item(row, column + 1).text()))
                successful_editing()
                connection.commit()
        if column == 2:
            try:
                insert_query = "Update contacts set dob = %s where fullname = %s and telephone_number = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_2.item(row, column - 2).text(),
                                              MainWindow.tableWidget_2.item(row, column - 1).text()))
                successful_editing()
                connection.commit()
            except:
                right_format_date()
    if MainWindow.tableWidget_3.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_3.currentRow()
        column = MainWindow.tableWidget_3.currentColumn()
        if column == 0:
            if len(EditWindow.edit_input.text()) < 2:
                few_characters()
            else:
                insert_query = "Update contacts set fullname = %s where telephone_number = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_3.item(row, column + 1).text(),
                                              MainWindow.tableWidget_3.item(row, column + 2).text()))
                successful_editing()
                connection.commit()
        if column == 1:
            if len(EditWindow.edit_input.text()) < 6:
                few_characters()
            else:
                insert_query = "Update contacts set telephone_number = %s where fullname = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_3.item(row, column - 1).text(),
                                              MainWindow.tableWidget_3.item(row, column + 1).text()))
                successful_editing()
                connection.commit()
        if column == 2:
            try:
                insert_query = "Update contacts set dob = %s where fullname = %s and telephone_number = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_3.item(row, column - 2).text(),
                                              MainWindow.tableWidget_3.item(row, column - 1).text()))
                successful_editing()
                connection.commit()
            except:
                right_format_date()
    if MainWindow.tableWidget_4.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_4.currentRow()
        column = MainWindow.tableWidget_4.currentColumn()
        if column == 0:
            if len(EditWindow.edit_input.text()) < 2:
                few_characters()
            else:
                insert_query = "Update contacts set fullname = %s where telephone_number = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_4.item(row, column + 1).text(),
                                              MainWindow.tableWidget_4.item(row, column + 2).text()))
                successful_editing()
                connection.commit()
        if column == 1:
            if len(EditWindow.edit_input.text()) < 6:
                few_characters()
            else:
                insert_query = "Update contacts set telephone_number = %s where fullname = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_4.item(row, column - 1).text(),
                                              MainWindow.tableWidget_4.item(row, column + 1).text()))
                successful_editing()
                connection.commit()
        if column == 2:
            try:
                insert_query = "Update contacts set dob = %s where fullname = %s and telephone_number = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_4.item(row, column - 2).text(),
                                              MainWindow.tableWidget_4.item(row, column - 1).text()))
                successful_editing()
                connection.commit()
            except:
                right_format_date()
    if MainWindow.tableWidget_5.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_5.currentRow()
        column = MainWindow.tableWidget_5.currentColumn()
        if column == 0:
            if len(EditWindow.edit_input.text()) < 2:
                few_characters()
            else:
                insert_query = "Update contacts set fullname = %s where telephone_number = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_5.item(row, column + 1).text(),
                                              MainWindow.tableWidget_5.item(row, column + 2).text()))
                successful_editing()
                connection.commit()
        if column == 1:
            if len(EditWindow.edit_input.text()) < 6:
                few_characters()
            else:
                insert_query = "Update contacts set telephone_number = %s where fullname = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_5.item(row, column - 1).text(),
                                              MainWindow.tableWidget_5.item(row, column + 1).text()))
                successful_editing()
                connection.commit()
        if column == 2:
            try:
                insert_query = "Update contacts set dob = %s where fullname = %s and telephone_number = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_5.item(row, column - 2).text(),
                                              MainWindow.tableWidget_5.item(row, column - 1).text()))
                successful_editing()
                connection.commit()
            except:
                right_format_date()
    if MainWindow.tableWidget_6.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_6.currentRow()
        column = MainWindow.tableWidget_6.currentColumn()
        if column == 0:
            print(len(EditWindow.edit_input.text()))
            if len(EditWindow.edit_input.text()) < 2:
                few_characters()
            else:
                insert_query = "Update contacts set fullname = %s where telephone_number = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_6.item(row, column + 1).text(),
                                              MainWindow.tableWidget_6.item(row, column + 2).text()))
                successful_editing()
                connection.commit()
        if column == 1:
            if len(EditWindow.edit_input.text()) < 6:
                few_characters()
            else:
                insert_query = "Update contacts set telephone_number = %s where fullname = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_6.item(row, column - 1).text(),
                                              MainWindow.tableWidget_6.item(row, column + 1).text()))
                successful_editing()
                connection.commit()
        if column == 2:
            try:
                insert_query = "Update contacts set dob = %s where fullname = %s and telephone_number = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_6.item(row, column - 2).text(),
                                              MainWindow.tableWidget_6.item(row, column - 1).text()))
                successful_editing()
                connection.commit()
            except:
                right_format_date()
    if MainWindow.tableWidget_7.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_7.currentRow()
        column = MainWindow.tableWidget_7.currentColumn()
        if column == 0:
            if len(EditWindow.edit_input.text()) < 2:
                few_characters()
            else:
                insert_query = "Update contacts set fullname = %s where telephone_number = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_7.item(row, column+1).text(),
                                              MainWindow.tableWidget_7.item(row, column+2).text()))
                successful_editing()
                connection.commit()
        if column == 1:
            if len(EditWindow.edit_input.text()) < 6:
                few_characters()
            else:
                insert_query = "Update contacts set telephone_number = %s where fullname = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_7.item(row, column-1).text(),
                                              MainWindow.tableWidget_7.item(row, column+1).text()))
                successful_editing()
                connection.commit()
        if column == 2:
            try:
                insert_query = "Update contacts set dob = %s where fullname = %s and telephone_number = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_7.item(row, column-2).text(),
                                              MainWindow.tableWidget_7.item(row, column-1).text()))
                successful_editing()
                connection.commit()
            except:
                right_format_date()
    if MainWindow.tableWidget_8.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_8.currentRow()
        column = MainWindow.tableWidget_8.currentColumn()
        if column == 0:
            if len(EditWindow.edit_input.text()) < 2:
                few_characters()
            else:
                insert_query = "Update contacts set fullname = %s where telephone_number = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_8.item(row, column + 1).text(),
                                              MainWindow.tableWidget_8.item(row, column + 2).text()))
                successful_editing()
                connection.commit()
        if column == 1:
            if len(EditWindow.edit_input.text()) < 6:
                few_characters()
            else:
                insert_query = "Update contacts set telephone_number = %s where fullname = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_8.item(row, column - 1).text(),
                                              MainWindow.tableWidget_8.item(row, column + 1).text()))
                successful_editing()
                connection.commit()
        if column == 2:
            try:
                insert_query = "Update contacts set dob = %s where fullname = %s and telephone_number = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_8.item(row, column - 2).text(),
                                              MainWindow.tableWidget_8.item(row, column - 1).text()))
                successful_editing()
                connection.commit()
            except:
                right_format_date()
    if MainWindow.tableWidget_9.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_9.currentRow()
        column = MainWindow.tableWidget_9.currentColumn()
        if column == 0:
            if len(EditWindow.edit_input.text()) < 2:
                few_characters()
            else:
                insert_query = "Update contacts set fullname = %s where telephone_number = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_9.item(row, column + 1).text(),
                                              MainWindow.tableWidget_9.item(row, column + 2).text()))
                successful_editing()
                connection.commit()
0
0 / 0 / 0
Регистрация: 05.11.2021
Сообщений: 7
24.12.2022, 23:07  [ТС]
Python
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
        if column == 1:
            if len(EditWindow.edit_input.text()) < 6:
                few_characters()
            else:
                insert_query = "Update contacts set telephone_number = %s where fullname = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_9.item(row, column - 1).text(),
                                              MainWindow.tableWidget_9.item(row, column + 1).text()))
                successful_editing()
                connection.commit()
        if column == 2:
            try:
                insert_query = "Update contacts set dob = %s where fullname = %s and telephone_number = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_9.item(row, column - 2).text(),
                                              MainWindow.tableWidget_9.item(row, column - 1).text()))
                successful_editing()
                connection.commit()
            except:
                right_format_date()
    if MainWindow.tableWidget_10.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_10.currentRow()
        column = MainWindow.tableWidget_10.currentColumn()
        if column == 0:
            if len(EditWindow.edit_input.text()) < 2:
                few_characters()
            else:
                insert_query = "Update contacts set fullname = %s where telephone_number = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_10.item(row, column + 1).text(),
                                              MainWindow.tableWidget_10.item(row, column + 2).text()))
                successful_editing()
                connection.commit()
        if column == 1:
            if len(EditWindow.edit_input.text()) < 6:
                few_characters()
            else:
                insert_query = "Update contacts set telephone_number = %s where fullname = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_10.item(row, column - 1).text(),
                                              MainWindow.tableWidget_10.item(row, column + 1).text()))
                successful_editing()
                connection.commit()
        if column == 2:
            try:
                insert_query = "Update contacts set dob = %s where fullname = %s and telephone_number = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_10.item(row, column - 2).text(),
                                              MainWindow.tableWidget_10.item(row, column - 1).text()))
                successful_editing()
                connection.commit()
            except:
                right_format_date()
    if MainWindow.tableWidget_11.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_11.currentRow()
        column = MainWindow.tableWidget_11.currentColumn()
        if column == 0:
            if len(EditWindow.edit_input.text()) < 2:
                few_characters()
            else:
                insert_query = "Update contacts set fullname = %s where telephone_number = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_11.item(row, column + 1).text(),
                                              MainWindow.tableWidget_11.item(row, column + 2).text()))
                successful_editing()
                connection.commit()
        if column == 1:
            if len(EditWindow.edit_input.text()) < 6:
                few_characters()
            else:
                insert_query = "Update contacts set telephone_number = %s where fullname = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_11.item(row, column - 1).text(),
                                              MainWindow.tableWidget_11.item(row, column + 1).text()))
                successful_editing()
                connection.commit()
        if column == 2:
            try:
                insert_query = "Update contacts set dob = %s where fullname = %s and telephone_number = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_11.item(row, column - 2).text(),
                                              MainWindow.tableWidget_11.item(row, column - 1).text()))
                successful_editing()
                connection.commit()
            except:
                right_format_date()
    if MainWindow.tableWidget_12.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_12.currentRow()
        column = MainWindow.tableWidget_12.currentColumn()
        if column == 0:
            if len(EditWindow.edit_input.text()) < 2:
                few_characters()
            else:
                insert_query = "Update contacts set fullname = %s where telephone_number = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_12.item(row, column + 1).text(),
                                              MainWindow.tableWidget_12.item(row, column + 2).text()))
                successful_editing()
                connection.commit()
        if column == 1:
            if len(EditWindow.edit_input.text()) < 6:
                few_characters()
            else:
                insert_query = "Update contacts set telephone_number = %s where fullname = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_12.item(row, column - 1).text(),
                                              MainWindow.tableWidget_12.item(row, column + 1).text()))
                successful_editing()
                connection.commit()
        if column == 2:
            try:
                insert_query = "Update contacts set dob = %s where fullname = %s and telephone_number = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_12.item(row, column - 2).text(),
                                              MainWindow.tableWidget_12.item(row, column - 1).text()))
                successful_editing()
                connection.commit()
            except:
                right_format_date()
    if MainWindow.tableWidget_13.cellClicked.connect(open_edit_data_window):
        cursor = connection.cursor()
        row = MainWindow.tableWidget_13.currentRow()
        column = MainWindow.tableWidget_13.currentColumn()
        if column == 0:
            if len(EditWindow.edit_input.text()) < 2:
                few_characters()
            else:
                insert_query = "Update contacts set fullname = %s where telephone_number = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_13.item(row, column + 1).text(),
                                              MainWindow.tableWidget_13.item(row, column + 2).text()))
                successful_editing()
                connection.commit()
        if column == 1:
            if len(EditWindow.edit_input.text()) < 6:
                few_characters()
            else:
                insert_query = "Update contacts set telephone_number = %s where fullname = %s and dob = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_13.item(row, column - 1).text(),
                                              MainWindow.tableWidget_13.item(row, column + 1).text()))
                successful_editing()
                connection.commit()
        if column == 2:
            try:
                insert_query = "Update contacts set dob = %s where fullname = %s and telephone_number = %s"
                cursor.execute(insert_query, (EditWindow.edit_input.text(),
                                              MainWindow.tableWidget_13.item(row, column - 2).text(),
                                              MainWindow.tableWidget_13.item(row, column - 1).text()))
                successful_editing()
                connection.commit()
            except:
                right_format_date()
    EditWindow.close()
 
def notification():
    notification_query = "SELECT fullname,DAY(dob) FROM contacts WHERE DAY(dob) BETWEEN DAY(CURRENT_DATE)+1 " \
                         "AND DAY(CURRENT_DATE)+7"
    cursor.execute(notification_query)
    result_notification_query = cursor.fetchall()
    if result_notification_query is None:
        pass
    else:
        list_of_dob = []
        for i in result_notification_query:
            list_of_dob.append(str(i["fullname"]) + " - " + str(i["DAY(dob)"]) + "-го числа.")
            summary_line = "\n".join(list_of_dob)
            notification_message = QMessageBox()
            font = QtGui.QFont()
            font.setPointSize(18)
            notification_message.setFont(font)
            notification_message.setStyleSheet("background-color: rgb(83, 83, 83);\n"
                                               "color: rgb(186, 186, 186);")
            notification_message.setWindowTitle("Напоминание:")
            notification_message.setText("Список именинников на ближайшую неделю:" "\n" + "" +
                                         "\n" + summary_line + "\n" + "" + "\n" + "Не забудьте поздравить их!!!")
            notification_message.setStandardButtons(QMessageBox.Ok)
            notification_message.exec_()
 
 
def actions():
    LoginWindow.registration_btn.clicked.connect(open_registration_window)
    LoginWindow.label_forgot_pass.clicked.connect(open_restore_window)
    LoginWindow.login_btn.clicked.connect(log_in)
    LoginWindow.cancel_btn.clicked.connect(clear_login_fields)
    RegistrationWindow.sign_up_btn.clicked.connect(registration)
    MainWindow.refresh_btn.clicked.connect(refresh)
    MainWindow.exit_btn.clicked.connect(log_out)
    MainWindow.New_btn.clicked.connect(open_new_contact_window)
    NewContactWindow.add_btn.clicked.connect(add_new_contact)
    MainWindow.tableWidget_1.cellClicked.connect(open_edit_data_window)
    MainWindow.tableWidget_2.cellClicked.connect(open_edit_data_window)
    MainWindow.tableWidget_3.cellClicked.connect(open_edit_data_window)
    MainWindow.tableWidget_4.cellClicked.connect(open_edit_data_window)
    MainWindow.tableWidget_5.cellClicked.connect(open_edit_data_window)
    MainWindow.tableWidget_6.cellClicked.connect(open_edit_data_window)
    MainWindow.tableWidget_7.cellClicked.connect(open_edit_data_window)
    MainWindow.tableWidget_8.cellClicked.connect(open_edit_data_window)
    MainWindow.tableWidget_9.cellClicked.connect(open_edit_data_window)
    MainWindow.tableWidget_10.cellClicked.connect(open_edit_data_window)
    MainWindow.tableWidget_11.cellClicked.connect(open_edit_data_window)
    EditWindow.edit_btn.clicked.connect(edit_data_page)
    EditWindow.delete_btn.clicked.connect(delete_contact)
    MainWindow.pushButton_1.clicked.connect(changed_to_1page)
    MainWindow.pushButton_2.clicked.connect(changed_to_2page)
    MainWindow.pushButton_3.clicked.connect(changed_to_3page)
    MainWindow.pushButton_4.clicked.connect(changed_to_4page)
    MainWindow.pushButton_5.clicked.connect(changed_to_5page)
    MainWindow.pushButton_6.clicked.connect(changed_to_6page)
    MainWindow.pushButton_7.clicked.connect(changed_to_7page)
    MainWindow.pushButton_8.clicked.connect(changed_to_8page)
    MainWindow.pushButton_9.clicked.connect(changed_to_9page)
    MainWindow.pushButton_10.clicked.connect(changed_to_10page)
    MainWindow.pushButton_11.clicked.connect(changed_to_11page)
 
 
# Запуск всех окон
app = QtWidgets.QApplication(sys.argv)
LoginWindow = LoginWindow()
RegistrationWindow = RegistrationWindow()
RestoreWindow = RestoreWindow()
MainWindow = MainWindow()
NewContactWindow = NewContactWindow()
EditWindow = EditWindow()
actions()
 
 
# Первый коннект к бд. Создание таблиц: users(пользователи программы) и contacts(контакты).
connection = config.getConnection()
cursor = connection.cursor()
create_table_query = "CREATE TABLE IF NOT EXISTS users (id int(5) NOT NULL AUTO_INCREMENT," \
                         "name varchar(20) DEFAULT NULL," \
                         "password varchar(20) DEFAULT NULL," \
                         "dob date DEFAULT NULL," \
                         "autologin bool DEFAULT NULL," \
                         "PRIMARY KEY (id));"
cursor.execute(create_table_query)
cursor = connection.cursor()
create_table_query = "CREATE TABLE IF NOT EXISTS contacts (id int(5) NOT NULL AUTO_INCREMENT," \
                         "fullname varchar(32) DEFAULT NULL," \
                         "telephone_number varchar(32) DEFAULT NULL," \
                         "dob date DEFAULT NULL," \
                         "PRIMARY KEY (id));"
cursor.execute(create_table_query)
 
 
# Чек на пустую бд, запуск программы.
connection = config.getConnection()
cursor = connection.cursor()
first_query = "SELECT (CASE WHEN NOT EXISTS(SELECT NULL FROM users) THEN 1 ELSE 0 END) AS isEmpty;"
cursor.execute(first_query)
result_first_query = int(cursor.fetchone()["isEmpty"])
if result_first_query == 1:
    LoginWindow.show()
elif result_first_query == 0:
    cursor = connection.cursor()
    autologin_query = "Select name from users Where autologin = %s"
    cursor.execute(autologin_query, True)
    result_autologin_query = cursor.fetchone()
    if result_autologin_query is None:
        LoginWindow.show()
    else:
        MainWindow.label_user.setText(result_autologin_query["name"])
        notification()
        refresh()
        MainWindow.show()
 
 
sys.exit(app.exec_())
Это всё единое, то что отправлял ранее тоже. Ограничение на форуме 25000 слов
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
26.12.2022, 15:58
Myxomop21, не стал читать этот говнокод (как наверное и все остальные), вкратце скажу:

1) Можно задать единый styleSheet для всего проекта, чтобы не писать одно и тоже для каждого виджета, а задать стиль для приложения в целом.
2) Существуют списки и кортежи для хранения однотипных данных/конструкций и циклы для их обработки.
3) Есть объект QSignalMapper, который может разгрузить логику сигнал/слотов упакованных данных (пункт 2).

Выполнив 3 сие великолепных пункта, твоя программа, будет в 100 раз меньше и в 10e99 читабельнее.

Добавлено через 4 минуты
В целом по вопросу, пример обычного встроенного метода класса:
Python
1
2
3
4
5
6
7
8
9
10
11
12
from PySide6 import QtWidgets
 
class MainWindow(QtWidgets.QMainWindow):
    """Класс главного окна приложения..."""
 
    def __init__(self, parent: QtWidgets.QWidget = None) -> None:
        """Базовый конструктор класса..."""
        QtWidgets.QMainWindow.__init__(self, parent)
    
    def my_method(self) -> None:
        """Уникальный метод класса, для работы с ним и его дочерними виджетами..."""
        return None
4
0 / 0 / 0
Регистрация: 05.11.2021
Сообщений: 7
04.01.2023, 11:02  [ТС]
Ну почему именно так, можно же сделать

Python
1
2
3
4
5
6
7
8
from PyQt5 import QtWidgets
 
class MainWindow(QMainWindow):
   def __init__(self):
       ...
   
   def methods(self)
       ....

Функция methods это одна из функций тех, которых я кидал выше. Я имею ввиду про это, как прописать эти все функции в один класс и ещё потом прописать запуск main. Потому что когда я когда делаю, мне пишет, то нету такого модуля, то это не функционирует, то эта функция не может принимать self и прочее.
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
09.01.2023, 07:31
Myxomop21, значит надо учить основы, если ты даже не можешь объяснить свою проблему, то как мы можем помочь?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.01.2023, 07:31
Помогаю со студенческими работами здесь

Как перенести структуру, класс в отдельный файл?
Здравствуйте. Объявив структуру, класс… если их выделить, можно ли в visual studio их вынести в отдельный файл (скрипт) проекта?

Игра Водопроводчик. Перенести логику игры в класс
игра Водопроводчик. На защите мне сказали перенести логику игры в класс, Весь день вчера сидел, ничего не получалось. Помогите хотяб первый...

Как перенести класс для работы в форме?
У меня есть код (представляющий из себя класс) мне нужно перенести его на Windows Form. Первый раз работаем с формами, нету идей на этот...

Нужно из одного класса перенести массив строк в главный класс формы
using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Net; using...

Как перенести класс в отдельный файл (InteliJ IDEA/Android Studio)?
Хочется выбрать класс и дать команду IDE чтобы она создала отдельный файл для класса и перенесла его код туда из текущего местоположения....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru