나는 초보자가 알고있는 무언가가있을 놓쳤지만 나는 정확히 알 수 없다,그래서 나는 PySide6 응용 프로그램,그리고 생성하는 함수를 생성해 달력에 QTableWidget 달력을 사용하여 모듈에서는 파이썬 모든지 문제가 되었을 때 나를 추가하려는 탐색 버튼을 얻을 다음과 이전의 달: 이것이 나의 기능:
import sys
import os
import platform
import datetime as dt
import time
import calendar
from PySide6 import *
from PySide6 import QtGui
from PySide6 import QtWidgets
from PySide6 import QtCore
from PySide6.QtGui import QColor
from functools import partial
yy = int(dt.datetime.now().strftime("%Y"))
mm = int(dt.datetime.now().strftime("%m"))
class MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
global widgets
widgets = self.ui
# Calender generator
self.calender_gen(mm,yy)
def calender_gen(self, mm_g, yy_g):
# Creat table rows and columns
widgets.tableWidget_3.setRowCount(5)
widgets.tableWidget_3.setColumnCount(7)
# Table header labels
week_list = ["Sat","Sun","Mon","Tue","Wed","Thu","Fri"]
widgets.tableWidget_3.setHorizontalHeaderLabels(week_list)
# Start inserting days of the month into the table
row = 0
col = 0
for week in calendar.monthcalendar(yy_g,mm_g):
for day in week:
if day == 0:
widgets.tableWidget_3.setItem(row,col,QTableWidgetItem(" "))
else:
widgets.tableWidget_3.setItem(row,col,QTableWidgetItem(str(day)))
col += 1
row += 1
col = 0
print(mm_g,yy_g)
# Connect Buttons to function
widgets.pushButton_3.clicked.connect(partial(self.next_calendar_butt,mm_g,yy_g))
widgets.pushButton_2.clicked.connect(partial(self.prev_calendar_butt,mm_g,yy_g))
def next_calendar_butt(self,mm_new, yy_new):
mm_new += 1
if mm_new > 12:
mm_new = 1
yy_new += 1
widgets.tableWidget_3.setRowCount(0)
widgets.tableWidget_3.setColumnCount(0)
self.calender_gen(mm_new,yy_new)
def prev_calendar_butt(self,mm_g_new,yy_g_new):
mm_g_new -= 1
if mm_g_new == 0:
mm_g_new = 12
yy_g_new -= 1
widgets.tableWidget_3.setRowCount(0)
widgets.tableWidget_3.setColumnCount(0)
self.calender_gen(mm_g_new,yy_g_new)
을 실행할 때 응용 프로그램 일정에서 보여줍니다 테이블에서 이미지 의 이미지 GUI 테이블
콘솔 출력 콘솔의 인쇄 11 2021 년
클릭할 때에 pushButton_3 을 위한 첫 번째 클릭하십시오 그것은 일반적으로 작동하고 인쇄'12 2021 년에서'콘솔 콘솔의 인쇄 12 2021 년 그러나 클릭한 후에 같은 버튼을 다시 시작합 복제:본체에 인쇄'12 2021 년 1 2022' 콘솔의 인쇄 12 2021 년 1 2022 면 내가 다시 클릭하여 인쇄'12 2021 1 2022 1 2022 2 2022' 으로 이미지에 입력한 이미지 설명을 여기에 모든 클릭으로 그것이 중복을 더디어야만 인쇄 하나의 문 i.e'2 2022'
를 아래의 calendar_gen()함수 그러나 내가 시스템의 사소한 문제일 수 있으 제공하수도 선언 후에 전역 변수를 할당하여 매개변수:
widgets.pushButton_3.clicked.connect(partial(self.next_calendar_butt,mm_g,yy_g))
widgets.pushButton_2.clicked.connect(partial(self.prev_calendar_butt,mm_g,yy_g))
나는 이렇게 했: 내부 calendar_gen()함수에서 나는 선언의 글로벌 변수를 할당하는 기능 매개 변수를 만들기 위해서 무언가를 좋아하는 글로벌 매개변수
global var_mm
global var_yy
var_mm = mm_g
var_yy = yy_g
다음에 init(자)기능을 넣어 2 라인:
def __init__(self):
widgets.pushButton_3.clicked.connect(partial(self.next_calendar_butt,var_mm,var_yy))
widgets.pushButton_2.clicked.connect(partial(self.prev_calendar_butt,var_mm,var_yy))
하지만 이 작동하지 않는 콘솔에서 그것을 인쇄'11 2021 년'나는 응용 프로그램을 실행한 다음]을 클릭하면서 pushButton_3 인쇄'12 2021'때 내가 다시 클릭하에 그것은,그것을 인쇄'12 2021'다시 등 과 같은 다른 버튼 그것을 인쇄'10 2021'다시 다시