원격 저장소 클론, 푸시 테스트하기
- 지난번에 원격저장소에 푸시했었는데, 지금 다른 컴퓨터에서 작업하려고 한다.
- 원격저장소로부터 클론받고 잘 푸시 되는지 확인해보자
- 안에 파일들이 정상적으로 내려받았다.
- 잘 푸시되는지 보기위해 텍스트파일 하나 만들고 아무거나 입력후 커밋해보자
-> 커밋하는 사람인지 누구인지 식별문제로 커밋되지 않는다. 아래 명령어대로 이메일과 이름을적자
- 컨피그 명령을 입력하면 커밋이 된다.
- 이제 푸시하면 깃헙 저장소에 잘 올라간걸 볼수있다.
섭씨 화씨 온도 변환기 구현
from tkinter import Frame, Label, Entry, DoubleVar, W,\
Tk, Button
class App:
def __init__(self, master):
frame = Frame(master)
frame.pack()
# deg C : 엔트리
Label(frame, text = "deg C").grid(row=0, column=0)
self.c_var = DoubleVar()
self.c_var.set(0.0);
Entry(frame, textvariable=self.c_var).grid(row=0, column=1)
# def F : 엔트리
Label(frame, text="deg F").grid(row=1, column=0)
self.f_var = DoubleVar()
self.f_var.set(32.0)
Label(frame, textvariable=self.f_var).grid(row=1, column=1, sticky=W)
# Convert 버
button = Button(frame, text="Convert", command = self.convert)
button.grid(row=2, columnspan=2)
def convert(self):
c = self.c_var.get()
self.f_var.set(c * 1.8 + 32)
window = Tk()
window.wm_title("temp converter")
app = App(window)
window.mainloop()
계산기 구현
from tkinter import Frame, Label, Entry, DoubleVar, W,\
Tk, Button, StringVar, SUNKEN, NSEW
import tkinter as tk
class Calculator(Frame):
def __init__(self):
Frame.__init__(self)
self.option_add("*Font","arial 16 bold")
self.grid(row = 0, column=0)
self.master.resizable(0, 0)
#이 화면을 맨 위에 표시되게 함.
self.master.wm_attributes("-topmost", 1)
self.make_form()
# 버튼 입력때마다 호출, 전달받은 c를 strExpr에 추가. 엔트리에 반영되면서 커서도이동
def update_expr(self, c):
self.strExpr.set(self.strExpr.get() + c)
self.entry.icursor(len(self.strExpr.get()))
#selfExpr의 계산 내용을 계산 후 결과를 strExpr에 대입, 커서는 맨뒤로 이동
def calc(self):
try:
self.strExpr.set(eval(self.strExpr.get()))
self.entry.icursor(len(self.strExpr.get()))
except:
self.strExpr.set("Error")
def make_form(self):
self.strExpr = StringVar()
self.entry = Entry(self, relief=SUNKEN, textvariable=self.strExpr)
self.entry.grid(row=0, column=0, columnspan=5, sticky=NSEW)
self.entry.bind("<Return>", lambda event, s=self: s.calc())
self.entry.focus() # 이 엔트리에 문자, 연산자 입력 가능하도록 함
"""
2번째 행부터
계산기 숫자버튼 구현
7 8 9
4 5 6
1 2 3
"""
for r, item in enumerate(("789", "456", "123")):
for c, ch in enumerate(item):
btn = Button(self, text=ch,
command=(lambda s=self, c=ch:s.update_expr(c)))
btn.grid(row=r+1, column=c, padx=2, pady=2, sticky=NSEW)
btn = Button(self, text="0", command=(lambda s=self, c="0":s.update_expr(c)))
btn.grid(row=4, column=0, columnspan=2, padx=2, pady=2, sticky=NSEW)
btn = Button(self, text=".", command=(lambda s=self, c=".":s.update_expr(c)))
btn.grid(row=4, column=2, padx=2, pady=2, sticky=NSEW)
"""
계산기 숫자 우측에 연산자 버튼 넣기
"""
for r, ch in enumerate("/*-+"):
btn = Button(self, text = ch, command=(lambda s=self, c=ch:s.update_expr(c)))
btn.grid(row= r+1, column=3, padx = 2, pady = 2, sticky=NSEW)
# C, = 버튼 넣기
btn = Button(self, text="C", command=(lambda s=self, w=self.strExpr:w.set("")))
btn.grid(row=1, column=4, rowspan=2, padx=2, pady=2, sticky=NSEW)
btn = Button(self, text="=", command=(lambda s=self:s.calc()))
btn.grid(row=3, column=4, rowspan=2, padx=2, pady=2, sticky=NSEW)
if __name__ == "__main__":
Calculator().mainloop()
스톱워치 구현
from tkinter import Frame, Label, Entry, DoubleVar, W,\
Tk, Button, StringVar, SUNKEN, NSEW, TOP, LEFT
import tkinter as tk
import time
def runTimer():
global timer, start_time, elapsed_time, prev_elapsed_time
if (running):
cur_time = time.time()
time_diff = cur_time - start_time
elapsed_time = time_diff + prev_elapsed_time
timeText.configure(text="{:7.3f}".format(elapsed_time))
window.after(10, runTimer) # 10ms뒤에 runTimer 다시 호출
def start():
global running, start_time, elapsed_time, prev_elapsed_time
if (running !=True):
running = True
start_time = time.time()
prev_elapsed_time = elapsed_time
def stop():
global running, prev_elapsed_time, elapsed_time
running = False
prev_elapsed_time = elapsed_time
def reset():
global running, timer, elapsed_time, prev_elapsed_time
running = False
elapsed_time = 0.0
prev_elapsed_time = 0.0
timeText.configure(text="{:7.3f}".format(elapsed_time))
window = Tk()
window.title("My Simple Stop watch")
running = False
timer = 0
start_time = stop_time = time.time()
prev_elapsed_time = elapsed_time = 0.0
timeText = Label(window, height = 5, text="0.000", font=("Arial 40 bold"))
timeText.pack(side=TOP)
startButton = Button(window, width=10, text="Start", bg="green", command=start)
startButton.pack(side = LEFT)
stopButton = Button(window, width=10, text="Stop", bg="red", command=stop)
stopButton.pack(side = LEFT)
resetButton = Button(window, width=10, text="Rest", bg="yellow", command=reset)
resetButton.pack(side = LEFT)
if __name__ == "__main__":
runTimer()
window.mainloop()
'컴퓨터과학' 카테고리의 다른 글
리눅스 프로그래밍 4 - 메모리, 프로세스, 시그널, 환경, 로그인 (0) | 2022.06.01 |
---|---|
리눅스 프로그래밍 3 - grep 구현, 리눅스 디렉터리구조, 파일시스템관련 명령어 구현 (0) | 2022.05.31 |
리눅스 프로그래밍 2 - stdio, head 구현, gdb 디버깅 (0) | 2022.05.31 |
리눅스 프로그래밍 1 - 리눅스 개요, 스트림 시스템 콜, cat 구현 (0) | 2022.05.29 |
파이썬 - 01. tkinter 기초(위젯, 레이아웃, 이벤트) + 원격저장소에 올리기 (0) | 2022.05.09 |