tkinter로 인터페이스 프로그램을 개발할 때 사용자에게 시기적절한 피드백과 원하는 결과를 제공하기 위해 인터페이스에 정보를 표시해야 하는 경우가 종종 있습니다. 텍스트 컨트롤을 사용하면 다양한 스타일과 속성으로 텍스트를 표시하고 편집할 수 있습니다.일반 텍스트 또는 서식이 지정된 텍스트를 포함할 수 있습니다.또한 사진 포함, 하이퍼링크 표시 및 CSS 서식이 있는 HTML을 지원합니다.
1: 전체 인터페이스
그것에 사용된 성분:
1, 라디오 버튼 컨트롤:, 라디오 버튼,
2, 텍스트 컨트롤: 텍스트 상자, 디스플레이 정보
3. 스크롤바 컨트롤: 스크롤바
4. 버튼 제어: 버튼
2: 전체 코드 프레임워크
def main(self):
lb = Label(root, text='可视化工具', \
#bg='#d3fbfb', \
fg='olive', \
font=('华文新魏', 12), \
width=50, \
height=2, \
relief=FLAT)
lb.place(relx=0.25, rely=0.01)
var = IntVar()
var.set(2)
rd1 = Radiobutton(root, text="func 1", fg='red',variable=var, value=0, command=lambda: self.showResult(var.get()))
rd1.place(relx = 0.23,rely = 0.2)
rd2 = Radiobutton(root, text="func 2", fg='blue',variable=var, value=1,command=lambda: self.showResult(var.get()))
rd2.place(relx = 0.4,rely = 0.2)
rd3 = Radiobutton(root, text="func 3", fg='green',variable=var, value=2,command=lambda: self.showResult(var.get()))
rd3.place(relx = 0.57,rely = 0.2)
rd4 = Radiobutton(root, text="func 4", fg='DeepPink',variable=var, value=3, command=lambda: self.showResult(var.get()))
rd4.place(relx = 0.23,rely = 0.25)
rd5 = Radiobutton(root, text="func 5", fg='SlateBlue',variable=var, value=4,command=lambda: self.showResult(var.get()))
rd5.place(relx = 0.4,rely = 0.25)
rd6 = Radiobutton(root, text="func 6", fg='Brown',variable=var, value=5,command=lambda: self.showResult(var.get()))
rd6.place(relx = 0.57,rely = 0.25)
startButton = Button(root, text='Start',font=('华文新魏', 20), activebackground = "green", command=lambda: self.startFunc(var.get()))
startButton.place(relx=0.35, rely=0.89, relwidth=0.3, relheight=0.1)
시작 버튼을 클릭하여 Text 컨트롤에 정보를 표시하면 Text 컨트롤이 스크롤 막대에 바인딩됩니다.
def startFunc(self,selectFunc):
self.collectInfo = [1,2,3,4,5,6]
if not self.collectInfo:
return
if self.startButtonFirst == 0:
self.validInfo = Text(root, width=100, height=19)#, undo=True, autoseparators=False
self.validInfo.place(relx=0.01, rely=0.32)
# 放到窗口的右侧, 填充Y竖直方向
self.scroll = Scrollbar()
self.scroll.pack(side=RIGHT,fill=Y)
# 两个控件关联
self.scroll.config(command=self.validInfo.yview)
self.validInfo.config(yscrollcommand=self.scroll.set)
self.validInfo.delete('1.0','end')
if selectFunc == 0:
self.validInfo.insert(INSERT, )
elif selectFunc == 1:
self.validInfo.insert(INSERT, self.collectInfo[1])
elif selectFunc == 2:
self.validInfo.insert(INSERT, self.collectInfo[2])
elif selectFunc == 3:
self.validInfo.insert(INSERT, self.collectInfo[3])
elif selectFunc == 4:
self.validInfo.insert(INSERT, self.collectInfo[4])
elif selectFunc == 5:
self.validInfo.insert(INSERT, self.collectInfo[5])
self.startButtonFirst = 1
정보를 표시하려면 라디오 버튼을 클릭하십시오.
def showResult(self,selectFunc):
if self.startButtonFirst == 0:
return
self.validInfo.delete('1.0','end')
if selectFunc == 0:
self.validInfo.insert(INSERT, self.collectInfo[0])
elif selectFunc == 1:
self.validInfo.insert(INSERT, self.collectInfo[1])
elif selectFunc == 2:
self.validInfo.insert(INSERT, self.collectInfo[2])
elif selectFunc == 3:
self.validInfo.insert(INSERT, self.collectInfo[3])
elif selectFunc == 4:
self.validInfo.insert(INSERT, self.collectInfo[4])
elif selectFunc == 5:
self.validInfo.insert(INSERT, self.collectInfo[5])
3: 텍스트 컨트롤
1. 기본 속성
속성 | 설명하다 |
---|---|
자동 분리기 | 기본값은 True이며 실행 취소 작업을 수행할 때 "구분 기호"를 자동으로 삽입할지 여부를 나타냅니다(그 역할은 작업 레코드를 분리하는 것임). |
내보내기 선택 | 기본값은 True이며 선택한 텍스트를 클립보드에 복사할 수 있는지 여부를 의미하고 False이면 허용되지 않음을 의미합니다. |
삽입 배경 | 삽입 커서의 색상을 설정합니다. 기본값은 BLACK입니다. |
삽입 테두리 너비 | 삽입 커서의 테두리 너비를 설정합니다. 기본값은 0입니다. |
삽입 시간 | 이 옵션은 커서의 깜박임 빈도를 제어합니다(꺼짐 상태). |
삽입시간 | 이 옵션은 커서의 깜박임 빈도를 제어합니다(밝은 상태). |
배경 선택 | 선택한 텍스트의 배경색을 지정합니다. 기본값은 시스템에 의해 결정됩니다. |
선택 테두리 너비 | 선택한 텍스트의 배경색을 지정합니다. 기본값은 0입니다. |
전경 선택 | 선택한 텍스트의 글꼴 색상을 지정합니다. 기본값은 시스템에서 지정합니다. |
세트그리드 | 기본값은 False입니다. 부울 값을 지정하여 그리드 제어를 활성화할지 여부를 결정합니다. |
간격1 | 각 줄과 텍스트 제어 텍스트 블록의 상단 사이에 공백을 지정하고 자동 줄바꿈을 무시하도록 주의하며 기본값은 0입니다. |
간격2 | 줄 바꿈을 무시하고 Text 컨트롤의 텍스트 블록에서 줄 사이의 공백 간격을 지정합니다. 기본값은 0입니다. |
간격3 | 자동 줄 바꿈을 무시하고 텍스트 구성 요소의 각 줄과 텍스트 하단 사이의 공백을 지정합니다. 기본값은 0입니다. |
탭 | 기본적으로 8자의 너비로 정의되는 Tag로 설명된 텍스트 블록에서 Tab 버튼의 기능을 사용자 정의합니다. 예를 들어 tabs=('1c', '2c', '8c')는 너비가 처음 3개의 탭은 1cm, 2cm, 8cm입니다. |
실행 취소 | 이 매개 변수의 기본값은 False로 Text 컨트롤의 "실행 취소" 기능이 꺼져 있음을 의미하고 True이면 켜져 있음을 의미합니다. |
포장하다 | 텍스트의 한 줄 길이가 width 옵션에서 설정한 너비를 초과할 때 자동 줄 바꿈 여부를 설정하는 파라미터로, 파라미터 값은 none(자동 줄 바꿈 없음), char(문자 단위로 자동 줄 바꿈), word(자동으로 줄 바꿈)입니다. 단어로 포장) |
xscrollcommand | 이 매개변수는 수평 방향으로 위아래로 미끄러지는 것을 의미하는 Scrollbar와 연관됩니다. |
yscroll 명령 | 이 매개변수는 세로 방향으로 좌우로 슬라이딩하는 Scrollbar와 연결됩니다. |
2. 기본 방법
방법 | 설명하다 |
---|---|
bbox(인덱스) | 지정된 인덱스에 있는 문자의 경계 상자를 반환합니다. 반환 값은 (x,y,width,height) 형식의 4-튜플입니다. |
edit_modified() | 이 메서드는 수정된 플래그를 쿼리하고 설정하는 데 사용됩니다(이 플래그는 Text 구성 요소의 내용이 변경되었는지 여부를 추적하는 데 사용됨). |
edit_redo() | 마지막 "실행 취소" 작업을 "재실행"합니다. 실행 취소 옵션이 False로 설정된 경우 이 방법은 유효하지 않습니다. |
edit_separator() | 완료된 작업이 완료되었음을 나타내는 데 사용되는 작업 레코드를 저장하는 스택에 "구분 기호"를 삽입합니다. 실행 취소 옵션이 False로 설정된 경우 이 방법은 유효하지 않습니다. |
get(인덱스1, 인덱스2) | 특정 위치 또는 리터럴 범위의 문자를 반환합니다. |
image_cget(인덱스, 옵션) | 인덱스 매개변수로 지정된 이미지 객체에 내장된 옵션 option의 값을 반환하고 주어진 위치에 내장된 이미지 객체가 없으면 TclError 예외를 발생시킵니다. |
이미지_만들기() | index 매개변수로 지정된 위치에 이미지 객체를 삽입하고 이미지 객체는 Tkinter의 PhotoImage 또는 BitmapImage의 인스턴스여야 합니다. |
삽입(색인, 텍스트) | index 매개변수로 지정한 위치에 문자열을 삽입한다.첫 번째 매개변수는 INSERT(커서 위치에 삽입), END(끝에 삽입)로 설정할 수 있다. |
삭제(시작인덱스 [, 종료인덱스]) | 특정 위치 또는 텍스트 범위에서 문자를 삭제합니다. |
참조(색인) | 지정된 인덱스의 텍스트가 표시되면 True를 반환하고 그렇지 않으면 False를 반환합니다. |
4: tkinter에서 지원하는 색상 요약
tkinter에는 많은 색상 설정이 있습니다. 여기에 요약이 있습니다. 둘러볼 필요가 없습니다.
'''#FFB6C1 LightPink 라이트 핑크
#FFC0CB 핑크 핑크
#DC143C 크림슨 크림슨/스칼렛
#FFF0F5 LavenderBlush 라벤더
#DB7093 PaleVioletRed 약한 바이올렛 레드
#FF69B4 핫핑크 열정적인 핑크
#FF1493 딥핑크 딥핑크
#C71585 미디엄바이올렛레드 미디엄 바이올렛 레드
#DA70D6 오키드 다크 퍼플/오키드 퍼플
#D8BFD8 Thistle 연꽃
#DDA0DD 플럼 플럼/플럼 퍼플
#EE82EE 바이올렛 바이올렛
#FF00FF 마젠타 마젠타/로즈
#FF00FF 퓨샤 퓨샤 / 랜턴 베고니아
#8B008B DarkMagenta 딥 마젠타
#800080 퍼플 퍼플
#BA55D3 미디엄오키드 미디엄 오키드 바이올렛
#9400D3 DarkViolet 다크 바이올렛
#9932CC DarkOrchid 다크 런 퍼플
#4B0082 인디고 인디고/바이올렛
#8A2BE2 BlueViolet 블루 바이올렛
#9370DB MediumPurple 중간 보라색
#7B68EE MediumSlateBlue 미디엄 다크 블루/미디엄 슬레이트 블루
#6A5ACD SlateBlue 석조 / 판암석
#483D8B DarkSlateBlue 다크 그레이 블루/다크 슬레이트 블루
#E6E6FA 라벤더 라벤더 / 라벤더 라벤더
#F8F8FF 고스트화이트 고스트 화이트
#0000FF 블루 퓨어 블루
#0000CD MediumBlue 미디엄 블루
#191970 MidnightBlue 미드나이트 블루
#00008B DarkBlue 어두운 색
#000080 네이비 네이비 블루
#4169E1 RoyalBlue 로얄 블루 / 로얄 블루
#6495ED CornflowerBlue 수레국화 블루
#B0C4DE LightSteelBlue 브라이트 스틸 블루
#778899 LightSlateGray 브라이트 블루 그레이/브라이트 슬레이트 그레이
#708090 SlateGray 그레이 돌/슬레이트 그레이
#1E90FF DodgerBlue 플래시 블루/닷지 블루
#F0F8FF AliceBlue 앨리스 블루
#4682B4 SteelBlue 스틸 블루/아이언 블루
#87CEFA LightSkyBlue 밝은 하늘색
#87CEEB SkyBlue 하늘색
#00BFFF DeepSkyBlue 딥스카이블루
#ADD8E6 라이트블루 브라이트 블루
#B0E0E6 PowderBlue 파우더 블루/화약 블루
#5F9EA0 CadetBlue 밀리터리 블루/밀리터리 블루
#F0FFFF 아주아주아주
#E0FFFF LightCyan 라이트 시안
#AFEEEE PaleTurquoise 약재보석
#00FFFF Cyan 블루
#00FFFF 아쿠아 라이트 그린/아쿠아
#00CED1 DarkTurquoise 다크 에메랄드
#2F4F4F DarkSlateGray 다크 슬레이트 그레이/다크 슬레이트 그레이
#008B8B DarkCyan 어두운 파란색
#008080 틸 틸 컬러
#48D1CC MediumTurquoise 중간 청록색
#20B2AA LightSeaGreen 라이트 오션 그린
#40E0D0 청록색 에메랄드
#7FFFD4 아쿠아마린 젬스톤 그린
#66CDAA MediumAquamarine 미디엄 젬 그린
#00FA9A 미디엄스프링그린 미디엄 스프링 그린
#F5FFFA 민트크림 페퍼민트 크림
#00FF7F SpringGreen 봄색
#3CB371 MediumSeaGreen 미디엄 씨 그린
#2E8B57 SeaGreen 오션 그린
#F0FFF0 허니듀 허니/멜론
#90EE90 LightGreen 라이트 그린
#98FB98 PaleGreen 약색
#8FBC8F DarkSeaGreen 다크 오션 그린
#32CD32 LimeGreen 플래시 다크 그린
#00FF00 라임 플래시 그린
#228B22 ForestGreen 포레스트 그린
#008000 그린 퓨어 그린
#006400 다크그린 다크그린
#7FFF00 샤르트뢰즈 옐로우 그린/차터 와인 그린
#7CFC00 LawnGreen 잔디 그린/잔디 그린
#ADFF2F GreenYellow 황색
#556B2F DarkOliveGreen 다크 올리브 그린
#9ACD32 옐로우그린 옐로우 그린
#6B8E23 OliveDrab 올리브 브라운
#F5F5DC 베이지 베이지/토프
#FAFAD2 LightGoldenrodYellow 밝은 국화 옐로우
#FFFFF0 아이보리 아이보리
#FFFFE0 LightYellow 라이트 옐로우
#FFFF00 옐로우 퓨어 옐로우
#808000 올리브 올리브
#BDB76B DarkKhaki 다크카키/다크카키
#FFFACD 레몬쉬폰 레몬 실크
#EEE8AA 페일골든로드그레이 국화/블루 유니콘 컬러
#F0E68C 카키 탄/카키 천
#FFD700 골드 골드
#FFF8DC Cornsilk 타마메 병
#DAA520 갈조금금국화 노랑
#B8860B DarkGoldenrod 다크 골든 국화 옐로우
#FFFAF0 플로랄화이트 플로럴 화이트
#FDF5E6 OldLace 구색/오르드레이스
#F5DEB3 위트 라이트 옐로우/위트 컬러
#FFE4B5 모카신 벅스킨/모카신 부츠
#FFA500 오렌지 오렌지
#FFEFD5 파파야휩 파파야/파파야
#FFEBCD BlanchedAlmond 흰 살구색
#FFDEAD NavajoWhite 나바호 화이트/인디지너스 화이트
#FAEBD7 AntiqueWhite 앤티크 화이트
#D2B48C 탠 브라운
#DEB887 벌리우드 원목 컬러
#FFE4C4 비스크 클레이 옐로우
#FF8C00 DarkOrange 다크 오렌지
#FAF0E6 린넨 린넨
#CD853F 페루 페루 컬러
#FFDAB9 PeachPuff 복숭아 고기
#F4A460 SandyBrown 사단색
#D2691E 초콜릿 초콜릿 컬러
#8B4513 SaddleBrown 헤비 브라운/서들 브라운
#FFF5EE 조개 조개
#A0522D 시에나 옐로우 오커
#FFA07A LightSalmon 라이트 연어 살색
#FF7F50 코랄 코랄
#FF4500 OrangeRed 오렌지 레드
#E9967A DarkSalmon 다크미트/연어색
#FF6347 토마토 토마토 레드
#FFE4E1 MistyRose 라이트 로즈/미스트 로즈
#FA8072 연어생고기/연어색깔
#FFFAFA 스노우 스노우 화이트
#F08080 라이트코랄 라이트 코랄 컬러
#BC8F8F RosyBrown 로즈 브라운
#CD5C5C IndianRed 인디언 레드
#FF0000 레드 퓨어 레드
#A52A2A 브라운 브라운
#B22222 FireBrick 내화 벽돌/내화 벽돌
#8B0000 DarkRed 딥 레드
#800000 Maroon 밤색
#FFFFFF 화이트 퓨어 화이트
#F5F5F5 WhiteSmoke 화이트 스모크
#DCDCDC 게인즈버러 라이트 그레이
#D3D3D3 LightGrey 라이트 그레이
#C0C0C0 실버은회색
#A9A9A9 DarkGray 다크 그레이
#808080 그레이 그레이
#696969 DimGray 희미한 회색
#000000 블랙 퓨어 블랙'''