出力された時間を24時間と12時間の形式で入れ替えようとしています。時間はGUIでテキストとして出力されます。私はすでにインターフェイスとボタンを作成していますが、何らかの理由で関数呼び出しが正しく応答していません。GUIで24時間から12時間にスワップしようとしています
import time
from tkinter import *
import os
class ConfigurationManagement():
def __init__(self):
self.__clockMode = 12
self.__clockColor = ''
self.__swapButtonTextColor = ''
self.__swapButtonColor = ''
def readClockSetting(self):
cwd = os.getcwd()
print(cwd)
filename = "clockSetting.txt"
setting = open(filename, 'r')
allSetting = setting.readlines()
setting.close()
return allSetting
def setClockMode(self, clockMode):
self.__clockMode = clockMode
def setClockColor(self, clockColor):
self.__clockColor = clockColor
def setSwapButtonTextColor(self, swapButtonTextColor):
self.__swapButtonTextColor = swapButtonTextColor
def setSwapButtonColor(self, swapButtonColor):
self.__swapButtonColor = swapButtonColor
def getClockMode(self):
return self.__clockMode
def settingUpClockSetting():
global clock
clock = ConfigurationManagement()
allSetting = clock.readClockSetting()
clock.setClockMode(allSetting[3])
clock.setClockColor(allSetting[6])
clock.setSwapButtonTextColor(allSetting[9])
def timeIn24(pastTime=''):
currentTime = time.strftime('%H: %M: %S')
if currentTime != pastTime:
digitalClock.config(text=currentTime)
digitalClock.after(200, timeIn24)
def timeIn12(pastTime=''):
currentTime = time.strftime('%I: %M: %S')
if currentTime != pastTime:
digitalClock.config(text=currentTime)
digitalClock.after(200, timeIn24)
def clockSwap():
print("Cat")
clockMode = clock.getClockMode()
if clockMode == 12:
clock.setClockMode(24)
timeIn24()
elif clockMode == 24:
clock.setClockMode(12)
timeIn12()
settingUpClockSetting()
root = Tk()
topFrame = Frame(root)
topFrame.pack()
bottomFrame = Frame(root).pack(side=BOTTOM)
digitalClock = Label(topFrame, font=('times', 100, 'bold'), bg='black', fg='green')
digitalClock.pack()
timeIn12()
root.geometry('700x500')
timeSwapButton = Button(bottomFrame, text="24/12 Modes", fg="red", bg="black", command=clockSwap).pack()
root.mainloop()
----------デジタル時計設定ファイル----------
ClockType[12,24]:
12
ClockColor[The following colors can be handled: ]:
green
SwapButtonTextColor[The following colors can be handled ]:
red
SwapButtonColor[The following colors can be handled: ]:
black
I:これは、これまでの私のコードです
私のボタンが実際に動作していることを確かめるために、猫プリントをclockswap関数に追加しました。それは確かです。
私は、これは固定しまっ
デバッガの使用を検討しましたか?または、失敗した場合、clockswap()関数のifの両方のブランチの内側にプリントを追加しようとしましたか、clock.getClockMode()によって返された値を出力しましたか?これらの単純なデバッグオプションを試していないのであれば、StackOverflowで何を質問していますか? – barny
応答してくれてありがとう、私は実際に自分自身の問題を修正し、投稿に新しい答えを追加しました:);ご協力いただきありがとうございます! –
問題の少なくとも一部は、 "" clockSetting.txt ""設定ファイルの処理にあります。例えば、 'allSetting [3]'が整数 '12'ではなく' 12 \ n 'という文字列に設定されているとします。 – martineau