อ่า โอเคนะครับ วันนี้เป็นสัปดาห์ที่แปดทั้งที่สองแล้วเนอะแต่ว่าเก้าสิบ สิบเด็ด สิบสอง สอง สอง เนอะ อ่า วันนี้ นะ ในหายที่เราจะเรียนนะครับ ต่อจากเมื่อวานนะ ต่อจากเมื่อวาน ซึ่งเป็นเรื่องของ PyQวันนี้เราจะมาดูต่อเรื่องของคลาสต์บางอย่างที่เราน่าจะจำเป็นต้องรู้ในการเขียนPython Applicationวันนี้เราจะมาดูเรื่องของ QTimer Qtummer แล้วก็การ Edit ตัว Style Sheet นะครับจากนั้นก็จะเป็นเกี่ยวกับการจัด Layout นะTap แล้วก็การ Disable Objects แล้วก็ธาตุภัณฑ์ก็จะทำตัวอย่างนะครับโอเคนะครับตัวแรกนะครับ ตัวแรกเป็น Qtummer นะครับ QtummerQtummer เนี่ยเป็น Class 1 นะครับของ PyQ นะ ซึ่ง เราสามารถใช้เป็นตัวตั้งเวลาได้นะครับ ถ้าเรายังจำเรื่องของ MicrocontrollerMicrocontroller Arduino ที่ผมเคยสอนเรื่อง Timer นะครับมันจะทำงานเหมือนกันนะ อันนั้นคือ Timer บน Microcontroller นะซึ่งมันจะทำการเกิดอลามขึ้นนะครับ และให้เชื่อมโยงไปยังฟังก์ชันใดๆ ที่เราต้องการให้มันทำงานก็ทำงานลักษณะเดียวกันเลยตัวนี้ก็เช่นกัน เขาเรียกว่า Q-Tarmerซึ่งตรงนี้จะสะดวกตรงที่มันสามารถทำงานแยกอิสระจากโปรแกรมหลักของเราจะให้มันทำงานทุก 1 วิ ทุก 0.5 วิ ทุก 0.อะไรวิก็ได้แล้วแต่เราจะ ตั้งขึ้นมานะครับ ทีนี้มันมีขั้นตอนยังไงนะครับในการใช้ Qtummerตัวนี้เป็น Class 1 ของ QIQ นะครับส่วนใหญ่ก็จะใช้ร่วมกับตัวแอปพลิเคชันที่เขียนขึ้นนะในร่วมแบบแอปพลิเคชัน ทีนี้วิธีการสร้างนะครับผมใส่ขั้นตอนมาให้อยู่ทั้งหมด 3 ขั้นตอนด้วยกันนะครับขั้นตอนที่ 1 ก็คือการสร้าง Object ชื่ออะไรก็ได้ที่เราจะเอาไปใช้นะเช่นอันนี้ผมตั้งว่า MyTimer นะครับ MyTimerและมาจากตัว Class QCore.QTimer นะครับ qcore.qthummer เนาะ อันนี้จะเป็น object ที่เป็น thumber นะครับจากนั้นพอเราได้ thumber มา เราก็ทำการ connect นะครับ เชื่อมโยงไปยัง function นะครับขั้นต่อไปนะครับ มันจะมีอยู่ 2 วิธีในการ start นะ คือ set interval ก่อนแล้วก็ start นะหมายความว่าจะให้มันทำงานทุกเท่าไหร่ นะครับ ตรงนี้เป็นตัวเลขนะ แล้วก็ค่อย start กับอีกแบบนึง วิธีที่ 2 คือ Start แล้วก็ใส่ตัวเลขเข้าไปเลยเวลามีหน่วยเป็น Millisecond ใช้ทำอะไร เราลองมาเขียนดูจะได้รู้อันดับแรก ให้เรา New Project ขึ้นมาเลย สร้างใหม่เลยแบบนี้นะNew แล้วก็ Main Window แล้วก็ Create เนาะโอเคนิวขึ้นมานะครับเป็น Window เบาๆ นะครับเอาเล็กๆ กระดาษนะครับนู้นคือของเก่าเนาะ โอเคนะครับเป็น อ่า วินโน่เปล่าเปล่านะ อ่ะ ก็ทําการ เลย แค่นี้นะครับเซฟ เซฟ เราจะเอา เขมเพจมันเฉยเฉยนะครับจริงจริงเราไปเขียนเลยก็ได้นะครับ แต่ผมจะให้เขียนบน เขมเพจของมันนะอ่า โอเค ผมจะใช้ ใหม่ แล้วกันนะครับ มันจะได้ จะใช้โฟลเดอร์ สอง ของผม แล้วกันนะ อันแรกผมจะบอกว่าอะไรthumbertest แล้วกันครับเป็น ui ของผมนะครับthumbertestปุ๊บก็เป็น.ui นะครับthumbertest.ui นะเราก็นะครับทำการเปิดตัวตัวนี้นะ ก็คือเปิด cmd แล้วแปลงไฟล์นั่นแหละครับ แปลงเลยนะครับ ถ้าใครจำได้ แปลงไฟล์ครับทามเมอร์เทสต์ ตัว ui นะครับ ผมก็พิมพ์ cmd นะครับก็จะเปิด command-dot มาที่ directory นี้โดยตรงเลยครับแล้วก็ file uic5-x แล้วก็ชื่อไฟล์ แล้วก็ logo แล้วก็ชื่อ file.py นะครับ ดังนั้น นี่ครับ นี่ที่ผมเขียนนะfile.yc5.x.cameratest.i ครับ โอเค ถ้าแปลงสำเร็จก็ไม่มีขึ้น Error อะไรนะครับเดียวผมก็ไปที่โค้ดผมนะ ผม open folder นะครับผมก็จะทำงานใน folder ใหม่นะครับ ไปที่ folder x82 นะครับSelect folder ก็จะเปิด สร้าง Directory ใหม่ สำหรับแค่นี้ โอเคนะครับในนี้ก็จะประกอบไปด้วย ui ไฟล์นะครับ ui ไฟล์แล้วก็ทำเมื่อเทสต์พี่ว่าครับถ้าคุณเพื่อความชัวร์นะว่ามันแปลงแล้วมันไม่เอเล่อนะให้เราลองลำดูครับมันก็จะขึ้นหน้าต่างเปล่าๆถูกไหมเพราะเมื่อกี้เมื่อกี้เราไม่ได้ใส่อะไรเลยนะครับ ในตัวนี้นะ เป็นนาฏ่งเปล่าๆ ลองกดคอนโทรล ดูก็ได้นะครับ จะได้นาฏ่งเปล่าๆ ไปปิดไปนะครับ ใน Python ก็จะได้นาฏ่งเปล่าๆ นะครับ แปลงว่าถูกต้องแล้วนะอ่า แล้วก็สร้างไฟล์ที่จะทำการเรียกใช้ตัวนี้นะครับ อ่า ให้นักศึกษาสร้างเลยอ่า ไฟล์ อาหวานทำยังไงนะครับ คอปปี้มานะ เขียน Mind อะไรดิ เอาใส่อย่างนี้ดีกว่าColumn Paste Code.py นะครับใส่มา Code ต่อถ่ายนะครับนั้นมีคำเป็น UI เป็น PY แล้วก็มีเป็น Code ของเรานะครับเป็น Code ของเราก็ Copy ตัวนี้มานะครับCopy มานะครับ ก็ Copy มา การก๊อปปี้มานะครับ แล้วก็ผมลบอันนี้ออกเลยแล้วกันเนอะจะได้ไม่เก็บกับ ลบออกหมดเลยนะครับ เหลือแค่นี้แล้วก็เอา 3 มรรทัดนี้ใช่ไหม 3 มรรทัดนี้ขึ้นมานะครับมันแท็ปไปก็กด Shift แท็ปให้มันเลื่อนไปหน้านะครับโอเค แล้วก็ลบ 2 มรรทัดนี้ทิ้งนะครับ มันจะเหลืออยู่แค่นี้นะโอเค ครับ จะเห็นมันเออเรอร์ตรง if ใช่ไหม เพราะว่าตรง class เรายังไม่ได้ใส่อะไรนะครับพอใส่แล้วมันก็ห่างนะ โอเค โพสต์จะมีอยู่เท่านี้นะครับที่เราจะใช้วิธีการ support class เหมือนเดิมนะครับclass อันนี้ผมก็ใช้คำว่า my class นะครับmy class แล้วก็ข้างล่างเนาะ ผมก็เป็น my object กับ My Class ทำไว้แบบนี้นะครับ จะได้ไม่ลืมนะ ฉะนั้นผมจะสร้าง Object จาก My Class แล้วโอเค My Class จะทำการสืบทอด Class ที่ชื่อว่า อะไรนะครับ UI Main Middle นะครับ เมื่อมาผมลองใช้โมดูล extension เสริมของ ES Code ในการแปลงรูปแบบมันจะออกมาอีกรูปแบบหนึ่ง ดังนั้นมันจะไม่ compatible กับสิ่งที่ผมสอนผมลองแล้วผมก็เลยลบออกแล้ว มันจะแปลงให้อัตโนมัติแต่ผมเห็นรูปแบบแล้วมันยังขาบบางส่วน ก็เลยใช้วิธีการแปลงใน DOS เหมือนเดิมครับอีกวิธีนะครับ อันนี้เป็นแนะนำให้นะให้นักศึกษาทำแบบนี้ก็ได้นะ ถ้าไม่อยากเปิดตัวนี้ให้นักศึกษาทำแบบนี้ ดูนะ ดูขั้นตอนนี้นะทำให้ดูนะครับ ให้เราคลิกขวาเดี๋ยวๆ ไปก๊อปคำเมื่อกี้มานะครับก๊อปคำนี้มา น่ะ ก๊อปไปนะ ครบแล้วนะ จากนั้นผมไปที่ Directory ที่เก็บไฟล์นะครับผมคลิกขวา New Text Document นะครับ เรียกว่าอะไรดิ Convert เนาะ Convert.tech ไปก่อนแล้วกันครับ เดี๋ยวค่อยแปลงเข้าไปนะครับ แล้วก็ผมก็จะใส่คำนี้เข้าไปอันนี้ อันนี้มานะ โอเคผมก็ก็แล้วผมเข้าไปที่ Directory แล้วก็สร้างไฟล์ที่ชื่อว่า Convert.tech นะครับผมแปะคำนี้ลงไปนะครับ แปะคำนี้ลงไป ทำการ Save นะครับ Save ตรงนี้ต้องเป็นชื่อไฟล์ที่อยู่ในนี้นะครับผมปิดนะครับ ผมไปที่ไฟล์ ผมเปลี่ยนชื่อนะครับให้เป็นเหมือนไฟล์ที่เป็น.bat นะครับ bat นะส่วนนี้จะ Run บน DOS นะครับ นี่มันจะเป็นรูปเกียร์นะ จะเป็นรูปเกียร์นะถ้าคุณสังเกตนะ จะเป็นรูปเกียร์นะ นะ แต่งนั้นเวลาที่คุณจะแปลงคุณก็ทำยังไงครับดับเวิร์ดคลิกตัวนี้จบเลยทันไหมเมื่อกี้ได้ไหมกรอบคำเมื่อกี้ไปใส่ในเทคไฟล์แล้วก็ทำการเปลี่ยนนามสกุล.bapบางคนนะครับจะไม่เห็นนามสกุลของไฟล์ต้องให้ทำแบบนี้นะครับ ViewนะครับFile Name Extension ตรงนี้ครับ มันจะบางคนจะขึ้นแบบนี้ใช่ไหม ไม่มี.bat ใช่ไหมให้ไปที่ตรงนี้นะครับFile name extension นามสกุลมันจะออกมานะครับนามสกุลจะออกมา นั้นคลิกขวา New text fileGolf pump เมื่อกี้มาใส่ เปลี่ยนชื่อเป็นอะไรก็ได้นามสกุล.bat นะครับตัวนี้จะลันไปที่ตัว Command DOS อัตโนมัตินะครับดังนั้น Timer ตัวนี้ที่ผมแปลงมา ผมลองลบถ้าได้ มันต้องขึ้นมาใช่ไหมถ้าไม่ขึ้น รักแสดงว่าไม่ได้ผม Double Click นะครับมันก็มาเลยผมลบไฟล์นี้ทิ้งก็คือการแปลง ที่เราไปกดอะไรกัน อันนี้คือการลันบน DOS อัตโนมัติ โดยตั้งชื่อ ตั้งนามสกุลเป็น.bacผมลบไฟล์นี้ทิ้งนะเมื่อกี้ ลบทิ้งนะครับ ไม่ใช่ลบโค้ดของเรานะ ลบไฟล์ที่เป็นตัวไฟล์หลักนะครับเป็นไฟล์ตัว SuperCard ผมดับเก็บคลิกปุ๊บนะครับ ก็เด้งขึ้นมาแล้วก็ปรั่นนะครับKaiCom ใครตอนนี้ผมไม่ได้เสียบ Power Supply นะครับแล้วผมปรับให้มันประหยัดพลังงานมันก็เลยเด้งขึ้นมาโชว์นะครับ มันช้าแต่ KaiCom เร็วๆ ก็อาจจะไม่เห็นนับมันอาจจะขึ้นมาเลยอะไรอย่างนี้นะครับถ้าได้เสียบปรับนะครับโอเคนะ เป็นอีกวิธีหนึ่งแต่ไม่ได้ใช้ได้กับทุกไฟล์นะครับนักศึกษาต้อง rename ชื่อให้ตรงกับข้างในถ้าอยาก Edit ทำไงที่ขวา Edit นะครับ ก็คือไฟล์ที่อยู่ในนี้timertaste.ui ต้องมีแล้วก็มันจะให้ output มาเป็นตัวนี้ดังนั้นให้เราเปลี่ยนชื่อให้มันตรงกับไฟล์ที่เราใช้โอเคไหมเปลี่ยนชื่อให้มันตรงแค่นึงมันก็จะลันอัตโนมัติไม่ต้องเปิด DOS ก็ได้ไม่ต้องเปิดหน้าต่างดำนี้ขึ้นมาก็ได้ไม่ต้องใช้ DOSก็คือใช้ตัวนี้เลยDOS Back อันนี้เป็นอีกวิธีนะครับ มันจะลันบน DOS อัตโนมัติโอเคนะครับ ผมจะกลับไปที่ Code ของเรานะครับThumber Test Code โอเค อันนี้ก็ UI Main Window นะครับมันก็จะทำการ Import Thumber Test ให้ผมนะครับจริงๆ อันนี้ ต้องนักศึกษาดูดีๆ ถ้าคุณมี file.py หลายตัว บางทีมันดึงมั่ว มัน import ให้มั่ว ต้องเช็คบรรทัดนี้ด้วยform timer test ถูกไหม ถูก เพราะว่าเราแปลงไป file นี้ import ui main window แล้วก็ตรงนี้ ui main windowจากนั้นก็ทำการสร้างตัว constructor init ok เรียบร้อย Consultor ตรงนี้ไม่ใช่ Init เนาะ ว่าวานบอกแล้วเป็น Super.setupui นะครับในวงเล็บมี Main Window นะครับ ถังไหม เป็นแบบนี้นะครับเท่านี้นะครับ มีเท่านี้อันนี้ โอเค ลองลันดูถ้าหน้าต่าง Pop up ขึ้นมาแสดงว่าถูกต้องนะครับถูกต้องนะครับ โอเค หน้าต่างผม Pop up ขึ้นมาแล้ว ด้วยฝ่ายนี้แสดงว่าเรานำเข้านะครับ Import Card เข้ามาได้นะ สำเร็จโอเค วิธีการในการสร้างตัว Timer ก็เริ่มสร้างเลย Sales. ชื่อ Timer ชื่ออะไร ผมใช้ Print ข้อความอัตโนมัติทั้ง 1 วิAuto Print เข้ากับ QCore คือตัวนี้นะครับเรา Import เข้ามาแล้วนะครับ มัน Import ให้ตั้งแต่แรกDot อะไร QTimer ตรงนี้ตอน QTimer นักศึกษาสังเกตดีๆนะQTi มันมี QTime กับ QTimer นะครับเห็นนักศึกษาตอนสอบเคยทำผิดไปใช้ QTime แล้วมันก็ไม่ออกซะทีนี่เป็น QTimer ครับ อย่างนั้นในสไลด์เขาว่าไงต่อก็เสร็จแล้ว สร้าง Object เสร็จแล้ว ต่อไปก็ ให้มันเชื่อมกับฟังก์ชั่นอะไรให้มันเชื่อมกับฟังก์ชั่นอะไรก็อันนี้เสร็จแล้วนะครับแล้วก็ self.autoprint.timeoutก็คือมันนับทุกเวลาtimeout ก็คือเป็นเมตรตtimeout แล้วก็ไป connectเหมือนสวิตช์เมื่อวาน.clickเก็บ ใช่ไหม.connectอันนี้ก็คือ มันจะเกิด signal ขึ้น ก็คือ signal timeoutตรงนี้ผมเขียนบอกแล้ว เกิด signal timeout.timeout.connect ต้องพิมพ์เอกconnect ไปที่ อันนี้เรียกว่าอะไรconnect ไปที่อะไร ตอนนี้ไปที่ตัวเม็ดตอดนะครับ Print Function เราตั้งขึ้นมาเองนะครับ ไม่มีความหมายแล้ว ก็คือเอาไว้ปริ้นต์นะเนี่ยครับมันจะเมื่อมีการนับจนถึงเวลา มันจะเรียกฟังก์ชันนี้ แต่นั้นเราอยากให้ทำอะไร เราอยากให้ปริ้นต์ถึงลง อยากให้ปริ้นให้หลงเฉยๆนะครับ ถัดไปนะครับ เราได้ขั้นที่ 1 แล้วสร้าง Object ขั้นที่ 2 เชื่อมโยงฟังก์ชันนะครับ ขั้น 1 ขั้น 2ขั้นที่ 3 ทำการ Set Interval นะครับ Set Interval ก็คือให้มันทำงานทุกกี่มิลลิเซ็กต์นะครับหน่วยเป็นมิลลิเซ็กต์นะครับในวงเล็บนี้นะครับ มิลลิเซ็กต์นะครับ โอเค set interval ทุกครั้ง 1 วิ แล้วก็ self.autopm.startดังนั้นพอเวลาเราสร้าง object ปุ๊บ เห็นไหม เราสร้าง Object ที่บรรทัดนี้นะครับ มันจะทำการสร้างตัว Timer ขึ้นมา เพราะว่าผมใส่ไว้ใน Constructor เลย เห็นไหมผมใส่ไว้ใน Constructor เลยนะครับ แล้วมันก็จะสร้างตัว Auto Print นะครับเป็น Timer นะครับ ชื่อว่า Auto Print เป็น Timer นะครับ จริงตัวอย่างผมใช้คำว่า อะไรนะ ปริ้นติ๊กอะไรสักอย่างนะครับ ก็คือให้มันติ๊กนะครับโอเค ดังนั้น ถ้าผมลั่นนะครับ มันจะ ครับวันนี้จะปริ้นนะครับ ทุก 1 วิ อ่า ตรงนี้อย่าลืมนะครับทุกไม่ตอบต้องมีเซลล์นะครับ ไม่งั้นมันจะเข้าถึงตัวแปลไม่ได้นะ มาแล้วนะครับ Hello มาแล้วนะครับ Hello มาเรื่อยๆนะครับไปเรื่อยๆ ทุก 1 วินะครับและนั้น Code ส่วนอื่นเราจะทำอะไรก็ทำไปนะครับตัวนี้มันก็จะทำทุก 1 วิตลอดการนะครับตลอดการนะ ตลอดการโอเค มีแค่นี้นะครับทีนี้ตรงนี้นะครับ มันมี 2 วิธีใช่ไหมในสไลด์ผมมีใส่ 2 ประทัดแบบนี้นะครับ กับ อีกแบบหนึ่งก็คือ ใช้คำนี้นะครับ แล้วก็ใส่ไปเลยนี่ นับ ให้คุณใช้ตัวใดตัวหนึ่ง นับ ตัวใดตัวหนึ่งอันนี้ผมทำการปิดตัวนี้แล้ว นับก็คือใช้แทน set interval เลย start ไปเลย ทัน นับแล้วคุณจะใช้คำสั่งไหนก็ แล้วแต่จุดผสมนะ ว่าต้องหมายว่าคุณจะ เช่น กดกลุ่มนี้ ให้มัน start นับทุก ให้มันติ๊กทุก 500 ms นะครับปุ่มนี้ให้มันติ๊กทุก 1000 ms อะไรอย่างนี้นะครับก็แล้วแต่หลักนะดังนั้น 2 คำสั่งนี้เลือกใช้อันใดอันหนึ่งนะครับลอง Workman นะครับทำงานได้เหมือนกันนะครับ ไม่ต่างจากเลยนะก็จะ Hello เราไปเรื่อยๆนะครับอ่า เห็นเนอะ ทันมั้ยนะ ไม่ทันพี่ ไม่ทันอ่ะ ไม่ขึ้น พิมพ์ไม่ครบแล้วเดี๋ยวช่วงพักจะค่อยดูให้อีกทีหนึ่งนะครับโอเคในตัวอย่างผมบอกว่าให้แสดงตัวเลขต่อท้ายคำว่า Hello ทำได้ไหม Hello1237578 ไปเรื่อยๆ ทำได้ไหม ลองสิ ทำไงดิHello1237578 ก็แค่ง่ายๆ เซลล์ดอท ไอ แล้วกับ 0 นะครับกำหนดตัวแปลเฉยๆนะครับ แล้วก็ self.i บวกเท่ากับ 1 นะ ตรงนี้ผมก็ in i นะครับ ง่ายไหมself.i เท่ากับ 0 นะ ตัวแรก คือ initial ก่อนนะครับจากนั้น 0 หรือ 1 นะ ในตัวใหญ่ ไม่รู้มี 0 ไหมครับ ผมไม่ได้ตัดมาเนาะ 0 นั่นแหละครับ 0 แล้วก็ทำการ Print นะครับ ตรงนี้ Error เห็นไหม ขึ้นขีด Error อะไรครับ ต้องทำไงอ่า Sales ถูกต้องครับ เราจะเข้าถึงตัว Pair นะครับ ตรงนี้นะครับ ถ้านักงานอักษาลืมใส่ Sales ตัวนี้จะเกิดอะไรขึ้นนะครับMethod นี้นะครับ คุณจะไม่สามารถเข้าถึงตัว Pair นะครับ หรือ Attribute ภายในคลาสของคุณได้เลยนะครับ ดังนั้นทุกคลาส ซึ่งบอกว่าคุณต้องมีเซลล์นับเป็นตัวแปรแรกเสมอนับทุ่มเมตต่อนะครับ ลองลบดูก็ได้นะครับ เอเวอร์ทันทีนะครับโอเคนะครับ ลองดูว่ามันจะมีตัว 0123 ขึ้นมาอย่างไรนะ มันก็บวกไปเรื่อยๆนะครับแล้วก็ดูบนปริ้นท์นะครับ 012345678 ไปเรื่อยๆ 1 วิ จนกว่าเราจะปิดหน้าต่างนี้นะครับพอปิดหน้าต่างนี้เกิดอะไรขึ้นนะครับ มันจะมา Exit แอปตรงนี้นะครับ System Exit นะโอเค ทำอะไรเมื่อกี้ ผมเพิ่ม CLI กับศูนย์ Define ไปที่ Constructorจากนั้นเอามา Print ต่อตรงนี้แค่นั้นเอง แล้วก็ทุกครั้งที่มันเรียกเสร็จ ก็ให้มันบวก 1 เข้าไปนะครับ บวก 1 เข้าไปนะ อันนี้จบแล้ว Qtummer นะครับลองสร้างปุ่มขึ้นมา 2 ปุ่ม เอาแบบว่า กด Start ปุ๊บ มันเริ่มปริ้นท์พอกด Stop ปุ๊บ มันหยุดปริ้นท์ ทำได้ไหม ในนี้ผมบอกว่า ผมมีคำสั่งให้อยู่ 2 คำสั่งนะครับ ในนี้ผมบอกว่า dot start ใช่ไหม เวลาอยาก stop ก็ dot stop ก็เอาไปใส่กับปุ่ม อ่ะลองทำซิจะได้ทบทวนของเมื่อวานด้วย อ่ะลองทำอีกไหม อ่า โอเคนะครับ ผมก็จะสร้างตัว method connect ของผมเมื่อวานที่ผมพาทำนะครับgcm นะครับ คุย connect เพื่อใช้ในการเชื่อมโยงปุ่มต่างๆนะครับ โอเค แล้วก็อย่าลืม run มันด้วยนะครับ run ด้วยนะครับcell.gcn นะครับโอเค run เรียกใหม่นะครับเรียกใหม่ runตรงนี้ยังไม่ได้ใส่อะไรนะครับกลับไปที่ตัว ไหน ถ่ายไม่ทันนะครับอ่าอ่าอ่า โอเคครับไปเพิ่มปุ่มนะครับเพิ่มปุ่มเพิ่มปุ่ม ปุ่ม 1 ปุ่ม นะครับ Start นะครับ ใหญ่ๆ หน่อยเนาะ เปลี่ยนขนาดตัวสอนเป็นเนาะเลื่อนๆ มาตรงนี้หารูปตัว A นะครับ ใส่ไปเลยใหญ่ๆ เลย สตาร์ทวิธีง่ายๆ อย่าเพิ่งสร้าง Stop นะครับ วิธีง่ายๆ ก็คือ Copy ด้วยที่เราเปลี่ยนแล้วเนาะแล้วก็ Ctrl C Ctrl D มานะครับ เราจะได้ไม่ต้องเปลี่ยนตัวอัพสอน 2 ครั้งนะครับโอเคนะครับ มันก็จะใหญ่เหมือนกันเลยนะครับโอเคไปเปลี่ยน object ชื่อ object มาซะนะครับเราจะได้รู้ว่าปุ่มไหนเป็นปุ่มไหนเนอะตรงนี้นะftbt นะครับผมจะใช้ชื่อ ftbt start buttonอีกปุ่มเป็นftbt นะครับ stop button fpbt ครับ สต๊อปปัตตอน fpbt ครับ แล้วแต่นั้นสาตั้งนะครับบางคนก็ตั้งชื่ออื่นนะ เป็นสิ่งสําคัญนะครับชื่อ object name เนี่ย เราจะเอาไว้เรียกใช้นะครับเรียกใช้ อ่า ครับ อีก 2 ปุ่มนะ สต๊อปนะครับโอเค ทําการ save แล้วก็ ทำการคอนเวิร์ตนะครับ แล้วก็เข้าไปดับเวิร์ดคลิกตัวนี้ที่ผมทำให้เมื่อกี้นะครับ แค่นั้นนะครับ ขันเนอะ งั้นมัน convert แล้วนะครับลองลานขึ้นมาเล่นๆก็ได้ว่าปุ่มมาหรือยังนะครับ ปุ่มมันต้องมานะครับอิอร์เลอร์ อิอร์เลอร์อะไรนะครับ อันนี้ อันนี้นะครับ ใช่ไหม เมื่อกี้เออเรออะไร ดูทันมั้ยผมไม่ได้ใส่เซลล์ตรง GCN นะครับมันไม่อนุญาตให้เรียกใช้ด้วยนะครับนี่นะพอผมใส่ ปุ๊บ ก็ได้แล้วนะครับมีปุ่ม Start Stop มารอแล้วนะครับมีปุ่ม Start Stop เรียบร้อยนะทันมั้ย ทันมั้ยตรงนี้ เพิ่มปุ่ม 2 ปุ่มบนตัว Designerเปลี่ยนชื่อเป็น Start Button กับ Stop Buttonเปลี่ยนชื่อเหมือนเพื่อผมจะได้เรียกใช้ผมก็ SaveSave เสร็จผมก็ไปแปลงแปลงโดยใช้ Back File เมื่อกี้ที่ผมสร้างให้เดี๋ยวก็คลิกกันก็แปลงให้ปุ๊บ เสร็จแล้วก็ไปที่โค้ดเดิมผมก็ลั่นดูว่ามันมาไหม เมื่อกี้เกิด Error ขึ้นครั้งหนึ่ง ตรง GCN ผมลืมใส่ cell นะครับ ตรงนี้ตรงนี้นะ ผมลืมใส่ cell นะครับ มันจะ Error เลยนะครับบอกว่าต้องการ 1 argument นะครับโอเค สตาร์ทมาแล้ว สต๊อปมาแล้ว เชื่อมโยงครับ เชื่อมโยงปุ่มกับฟังก์ชันผมจะให้มันหยุดกับ start timer กับ stop timer นะก็ cell.startbutton โอเค มาแล้ว.ticket.connect ไปที่เรายังไม่ได้สร้างภาคชั่นไว้ใช่ไหมsale. เรา อย่างนี้ไหมเราไปสร้างภาคชั่นไว้ก่อนเนอะsale.fm เป็นของปุ่ม start button Start Function นะครับStart Function แล้วก็ Stop Functionผมสร้างก่อนเพราะว่าเวลาผมพิมพ์ตรงข้างบนมันจะได้เอาไปใส่ให้ผมนะครับผมแก้ไม่ต้องพิมพ์สะ Stop Button นะครับSP FunctionStart FunctionStop Function นะครับอันนี้ก็เป็น Cell Dot สตาร์ทฟังก์ชันตรงนี้นะ มันมาให้เลยนะ ไม่ต้องพิมพ์แล้วอีกปุ่มหนึ่งก็คือปุ่ม stopคลิก connect stop button stop function นะครับวิธีหนึ่งที่นักศึกษาควรจะทำนะครับ เพื่อให้ชัวร์ว่าโค้ดเราถูก คุณปริ้นท์อะไรสักอย่างหนึ่งก่อนก่อนที่จะไปใส่อะไรเข้าไปนะครับ ปริ้นท์ ตรงนี้ปริ้นท์ อะไรเหรอStart นะ ผมแนะนำนะครับให้เช็คนะครับเพราะหลายคนจะงมว่า มันผิดที่ปุ่มเราไม่ทำงานหรือว่าเราเชื่อมผิด หรืออะไร หรือฟังก์ชันที่อยู่ในนี้ที่เราใส่ไปเยอะๆ สมมุติเรามีให้มันทำงาน กดแล้วให้ทำงานเลยสักอย่างใส่ไปเยอะมากเลย ไม่รู้มันเขียนผิดหรือเปล่า หรือมันไม่เชื่อมมานะครับเราก็แค่ปริ้นต์ดูว่ามันเวิร์คชัวร์ แล้วค่อยเอาโค้ดมาใส่ในฟังก์ชันข้างล่างนะครับงั้นผมใส่แค่ให้มันปริ้นต์นะครับขอแนะนำเลยนะ คุณควรจะเช็คนะครับผมก็ทำการลันนะครับ แล้วก็ดึงอันนี้ขึ้นไปนะครับผมกด Start นะครับ ผมทำปิดตรงไหนนะตรงนี้ใช่ไหมโอเคผมเชื่อมไปที่เดียวกันหมดเลยใช่ไหมโอเคเห็นไหมมันเบิ้ลเมื่อกี้นี้นะโอเคเอาใหม่นะครับเอาใหม่ ตัว Timer มันก็ปิ๊ตไปของมันนะครับ เรายังไม่ยุ่งกว่าไปนะตัว Timer นะครับก็ปิ๊ตไป ลองดู Start โอเค Start มานะครับ Stop มา อันนี้คือเวิร์กแล้วนะครับ ปุ่มเราเวิร์กแล้วแหละ มา มา นะฮะมา เวิร์ก หลังจากเวิร์กคุณค่อยเอาสิ่งที่คุณต้องการให้มันทําอ่ะใส่เข้าไปนะครับ ตัวนี้ก็ ทิ้งเลยนะครับแล้วก็ เอ่อ ทําอะไร เราจะทําอะไรเมื่อกี้เราจะ ใช่ไหม นะครับ ดังนั้น ให้เนื่องจากแก้ไขตรงนี้นะครับ ผมจะใช้ตัวอีกตัวนึงนะ ตัวนี้เนอะผมจะ comment ทิ้งแล้วก็เอาตัวคันออกมานะครับเราจะ set interval ทิ้งไว้นะครับ แล้วก็ไม่ต้อง start นะ ไม่ต้อง startผมจะมา start ในนี้นะครับ นั่นผมก็ก็ปมานะครับจะได้ไม่ต้องพิมพ์นะครับ ผมก็ก็มาตรงนี้นะครับ start นะ ตรงนี้ก็rtn.startup.startupโอเค แค่นี้ครับเวิร์คไหม คิดว่าหลั่นนะครับ หลั่นโอเค ไม่มีอะไรปริ้นมานะเห็นไหม ไม่มี พอผมสตาร์ท มันจะปริ้นแล้วHello 123 พอผมสต๊อป เลิกแล้วพอผมสตาร์ทอีกครั้ง มันก็จะต้องนับต่อ 5 6 ไปเรื่อยๆพอผมสต๊อป มันก็สต๊อปคุณอยากให้เครื่องทำอะไร คุณก็ ที่มันหมายถึงว่าทำอะไรที่ซ้ำๆก็ใช้ตรงนี้ได้ เราใช้ปุ่มเป็นแล้วกันแต่เมื่อวาน วันนี้เราก็มาใช้ร่วมกับ QTimer นะครับStart หา Stop นะครับข้อนี้นะครับ ข้อนี้ โอเคมะมีอะไรต่อนะครับตรงนี้เนอะ ทำไปแล้วนะครับ ตัวอย่างนี้ทำกันแล้วเรียบร้อยนะครับอ่า ต่อไป ไปเปลี่ยนสี การปรับแต่งสีของปุ่มหรือพื้นหลังหรืออะไรต่างๆเราจะใช้การ Edit ผ่านสิ่งที่เรียกว่า Style Sheetตัว Style Sheet สามารถเข้าถึงด้วย 2 วิธีเราจะต้องทำบนตัว Q-Designer ผมจะอีฤตตัวสตาร์ทให้เราคลิกขวาก็ได้ตัวนี้นะครับ ชเช้ง Style Sheetอันนี้วิธีที่ 1 อีกวิธีนึงStyle Sheet เวลาเราคลิกปุ่มมันจะมาอยู่ตรงนี้นะครับมองเห็นไหม Style Sheet อยู่ตรงไหนนะนี่ อยู่ตรงนี้นะครับ ตรงนี้นะครับ มองเห็นไหม อยู่ตรงหัวข้อ QWIDGET นี่แหละ สไตล์วิชิตเข้าตรงไหนก็ได้นะครับ เป้าหมายคือที่เดียวกันนะครับ ก็คือตรงนี้นะครับแล้วคลิกขวาตรงนี้ก็ได้ ไม่ต้องเลือนหังนะครับ เตรียมร้อยนะครับก็เปลี่ยนสีปุ่ม Start นะครับ Start เป็นสีเขียวแล้วก็ Add Color เข้าไปนะครับเป็น Background นะครับ ถ้า Color เฉยๆ หมายถึงตัวอักษรนะครับ แบ็คกาว แบ็คกาว สตาร์ทก็เขียวแล้วนะครับเราจะเห็นโค้ดมันขึ้นนะครับ ตรงนี้แบ็คกาวคัลเลอร์ RGBRGB นะครับ ตรงนี้ก็คือ RGB28 251 161 นะครับนั่นสามารถว่า 000 เป็นสีอะไร ลองดูนะสิ้น 000 อันนี้สีอะไร นี่ดูตรงนี้ ตรงนี้ สีขาวเป็น 255 หมดเลยถ้าสีดำหรอก 000 นะครับ ถ้าสีแดงก็เป็น Red ใช่ไหม สองห้าห้าศูนย์ศูนย์นะครับ อาร์จีบีนั่นเองนะแล้วผมเอาสีเขียวอันนี้นะครับ สวยสวยพอ ตรงไหนก็ได้นะ 80 อันนี้มันคัลเลอร์เนาะ ต้องแบคการ์ดนะครับแบคการ์ดคัลเลอร์นะครับ ก็เปลี่ยนไปนะครับนี่มันก็มาแล้วเป็นสีนะครับ เป็นสีอยากจะเปลี่ยนเป็นแบบ gradient ดีไหม gradient มันจะเป็น gradient ลองไปที่ gradient นะครับgradient ตรงนี้นะ แบคการ์ดคัลเลอร์มันจะมีลวดลายให้เรานะครับ ลวดลาย เราปรับแต่งเองก็ได้เนอะ มิวก็ได้นะ มิว อ่า มิว มิว นะครับมิว กดมิว ปึ๊บ มันก็จะบอกว่าด้านซ้ายสีอะไรนะครับด้านซ้ายสีอะไร เป็นสีแดงๆ นะ ด้านขวาเอาเมาส์คลิกตรงนี้นะครับเนี่ยเห็นไหม ปึ๊บ ด้านนี้แหละสีอะไรนะครับ สี เขียวไหม นะครับแล้วก็เอาเข้มๆ ไหม อยากได้เข้มไหม เอาเมาส์จิ้มตรงนี้ก่อนนะ จิ้มซ้ายขวาก่อนนะครับแล้วก็ปรับตามชอบนะครับ ความเข้มอะไรเนี่ยก็ปรับดูนะครับถ้าคือ ถ้าเห็นลายตราข้างหลังคือมันโป่งแสงนะครับ โป่งใส่ข้างบนจะเป็นรูปแบบนะ ว่าเอียงแบบไหนนะครับอะไรแบบนี้นะ ก็กดโอเคไปนะครับ กดโอเค มันก็จะได้ปุ่มนับสีแบบนี้นะ แล้วแต่เรานะครับเลือกสีที่ชอบนะครับ อ่ะ ก็กด SaveSave นะ แล้วก็ไปแปลงแค่นั้นเองนะครับสีมันก็จะขึ้นที่ตัวแอพพลิเคชันของเรานะครับ แค่นั้นเองอ่ะ นะครับ ขึ้นแล้วบน Python นะครับมา แบ็คกราวล่ะ ทำได้ไหม แบ็คกราวแบ็คกราวก็ทำได้นะครับให้นักศึกษาคลิกตรงแบ็คกราวเนี่ย นะครับแล้วก็ Change Style Sheet ที่แบ็คกราวนะครับมันก็เปลี่ยนได้เช่นกันนะครับก็เปลี่ยนไปนะครับ ตามต้องการนะครับก็ได้เป็นสิ่งนะครับ ทำการ Save แล้วก็แปลง แล้วก็ไป Run Code ของเราดังไหมแล้วจะได้เป็นสีครับApplication ของเราก็จะมีสีใส่รูปหน้าตัวเองเข้าไปก็ได้ครับใส่ยังไงครับมันจะใส่ผ่าน Color โทษที เป็นแบ็คกราวน์ มันจะต้องทำผ่านแบ็คกราวน์เดี๋ยวนักงานสาวไปดูแล้วกัน มันอยู่ตรงนี้นะแบ็คกราวน์ Image แต่นักงานสาวต้อง Add Resort ก่อนนะครับตัว Resort เนี่ย แอดยังไง แอดแบบนี้นะครับ แอดที่View Resort Browser นะครับ อันนี้ไม่มีในนิดสไลด์นะView Resort Browser แล้วก็กดรูปดินสอนะครับ Edit Resort แล้วก็มันจะขึ้นหน้าต่างนี้มา แล้วก็ Open Resort FileNew Resort File กด New ปุ๊บ แล้วก็มันจะไป Directory ให้เราตั้งชื่อนะครับMy Resort นะครับ My Resort ปุ๊บ เสร็จจากนั้นผมก็กด Save นะครับ มีแล้วนะครับ ตรงนี้ผมก็ทำการ ฟันไหม Add Pific เป็นชื่ออะไรสักอย่างหนึ่งMewPificPific Hello นะครับ ไม่รู้จะตั้งอะไรดิแล้วก็ทำการ Add File เข้าไปในตัว Hello นะครับไฟล์รูปภาพที่เราต้องการนะเราก็ทำการ Add ไปนะครับมีรูปอะไรก็ Add ไปที่เราต้องการสมมติเรา Add แล้วนะครับเวลาที่เราไปเบาส์ตรง แอด Image แบ็คกราวน์ มันก็จะขึ้นนะครับขึ้นตัวรีสอร์ทตัวนี้ ชื่อว่า My Resort เนี่ยแล้วก็ลองไปเลือกดูนะครับนี่ผมไม่ได้แอดให้ดูนะครับ ลองไปทำดูแอดรูปภาพ แอดอะไรนะครับถ้าแอดอะไรไม่เป็นก็ค้น Google นะครับตัวนี้โอเค ผมจะไปที่สไลด์นะครับ ไปต่อกันสีพื้นหลัง พวก Resort, Radiant, Color พวกขอบพวกอะไรพวกนี้ก็ลองลองเล่นดูได้นะครับผมไม่ได้สองทั้งหมดนะเป็นการปรับแต่งนะครับแล้วถ้าเราครับลองไปเรียนรู้ดูนะอ่ะโอเคนะตัวนี้ตัวนี้ของเมื่อวานเนี่ยใช่ไหมก็ลองไปปรับแต่งดูนะครับน่าจะเป็นแล้วนะใส่เจรียนเป็นแล้วสีนี้เป็นสีเขียวสีแดงนะครับอ่าตัวเลขดิจิตอลนะครับถ้าอยากให้มันตัวใหญ่ทำยังไงนะครับ ปกติมันจะไม่ยอมเป็นตัวใหญ่ให้นะครับ เอาผมจะแอบเข้าไปให้ดูหนึ่งตัวนะครับตัวเลขเนอะ ให้เรานะครับ แอดตัวเลขดิจิทัลเข้าไปนะครับเป็น LCD number เนอะ ตัวนี้นะ ครับมันไม่ยอมเป็นตัวใหญ่เห็นไหม ผมลากมาแล้วมันก็ใหญ่แค่เนี้ยนะที่มันไม่ใหญ่เพราะว่ามันถูกกําหนดว่า มันต้องเหลือพื้นที่ไว้สำหรับ 5 หลักดังนั้น 1 2 3 4 5 มันพอดีนะครับให้คุณเลื่อนลงมานะครับ ด้านล่างมันจะมีเลข 5Digit Count นะครับผมบอกว่า 3 พอผมใส่ 3มันก็จะเหลือพื้นที่ให้พอสำหรับ 3 Digital Numberมันก็เลยใหญ่นะครับตรงนี้นะ มันจะเลื่อนมา Digit Count นะครับโอเคนะ เพิ่มอะไรเข้าไปอีกดี เพิ่มตัว Resort ผมปิดไปเลยนะเพิ่มตัว slider นะ slider horizontal มันเหมือนตัวอย่างนะผมยังไม่เปลี่ยนสีนะ สักอย่างเปลี่ยนก็เปลี่ยนเลยนะStart Stop แล้วมีปุ่มตรงนี้ Start Stop ใช่สิ ในตัวอย่างเป็น Up Down ใช่ไหม เอา Start Stop มาไปข้างล่างนะครับอันนี้เป็น Up Down นะครับ เป็นปุ่มใหม่นะครับปุ่มใหม่ Up กับ Down นะ จะได้ทำตามสไลด์ต่อได้นะครับUp กับ Down Start Stop ผมดึงมาข้างล่างนะ ก็ไปเปลี่ยนชื่อ object มันเป็น start button 2 ก็เปลี่ยนเป็น up buttondown button dnbt ผมใช้คำง่ายๆอันนี้เป็น lcd number เหมือนเดิม อันนี้เป็น slider ชื่อยาวเกินsld ทำการ save ซะ เซฟจากนั้นนะครับ ก็ทำการแปลงเหมือนเดิมนะครับการแปลงครับ เยอะร้อยนะก็ไปล้างดูนะครับ มันก็ต้องเปลี่ยนแปลงตามที่เราปลอดภัยหมดนะครับ ทำไม อะไรนะ ไม่ได้พักหรอ อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า อ่า MyResort อะไรเนี่ยมาจากไหนนะครับมายังไงMyResort คืออะไร เอาล่ะผมลบอันนี้ทิ้งเลยนะครับ อยากมีตัวหน้าดีนะ ทำไมมันขึ้น My Resort มาจากไหนเนอะของกระโลกมีไหม ผมงงเลยมันขึ้นตัวนี้มาได้ไง อันตรายอันตรายอันตรายอันตรายอันตรายอันตราย อ่ะ ได้ ใช่ไหม ได้ ได้โอเค ก็ดูอะไรนะอะไร ให้ดูก่อนคำนึง ถ้าไม่ทัน เดี๋ยวจะมีวีดีโอให้ อันของว่า Minecraft แล้วนะครับผมไปที่ตัวสไลด์ ก็เปลี่ยนสีนะครับเปลี่ยนแล้วนะ เปลี่ยนสีแล้วอันนี้นะครับ ผมให้วางตัวอักษร Warning ไว้นะครับ ที่เป็น Q-Label นะครับ เรายังไม่เคยใช้ใช่ไหมให้เรา กระพริบตัว Warning ทุก 1 วิกระพริบตัว Warningทีนี้ทำยังไงจะกระพริบสลับเป็นสีแดงกับสีเขียวสีแดง Color Index แดงขาวนะครับ แดงขาวสีขาวนี่เป็นอะไรนะ 2มันหมดเลยใช่ไหม สีดำ 0 หมดใช่ไหมถูกไหมก็ แล้วเมื่อกี๊ก็ทำการแปะคำว่า warning เข้าไปนะครับตรงนี้แล้วกันนะครับ เอ่อ...Q Label อยู่ตรงไหนมีมั้ยLabel Labelมีนะครับ ตรงนี้นะ นี่นี่เป็นรูปป้ายแท็กตรงนี้นะเอามานะครับมันเล็กเนอะ มันเล็กเราก็เปลี่ยนให้มันใหญ่นะครับเป็น...เอ่อ... สับ 20 แล้วกันนะครับ มันมันชิดชิดซ้ายชิดขวาใช่ไหมเราอยากมีตรงกลางทำไงนะเลื่อนมามันจะมีเทคอะไรอะไรเลยใช่ไหมตรงนี้นะผมว่านะ เราจะให้เป็นเซ็นเตอร์นะครับ โอเค กลางแล้วนะ ผมมาตรงนี้นะครับAlignment นะครับ ตรง QLabelเราก็อยู่กลางนะครับ อยู่กลางเราจะเปลี่ยนสี เราจะใช้คำสั่งอะไร เราจะรู้ได้ไงนะครับผมก็ทำการ Change Style Of Sheet ของมันซะเป็น Add Color เข้าไปเป็นสีและ Gown เป็นสีแดงนะครับเป็น 21500 เลยนะครับ โอเคนะครับผม แก้ตรงนี้เลยนะครับ ผมไม่ได้รากนะของ 500 เป็นสีแดงนะครับBlackout Colorโอเคนะครับ Morningผมอยากให้มันกระพริบนะครับกระพริบนะครับผมอยากให้มันกระพริบ ผมจะทำการ Save นะครับจากนั้น ทำการแปลงนะครับทำการ Save แล้วก็แปลงนะครับ สว โอเคนะครับ ต้องการแปลงแล้วลองลานดูนะครับมันขึ้น MyResort อีกแล้วนะ ทำไมมันขึ้นนะComer Taste มองว่าทำไมมันขึ้นนะ MyResort ครับ มีคนเอิ้นเหล้วเหมือนของ Summer Taste มาที่ 2มีใครเล่าแบบนี้ไหมมีไหมไม่มีเนี่ยมันมาได้ไงครับเลยลบทิ้งแล้วก็Zip ออกมาครับหวังว่ามันขึ้นมาได้ไงโอเคคิดว่าน่าจะได้เนอะ OK สีแดงนะครับ ให้เราไปดูที่ตัวโค้ดตัวนี้สินะครับ ตัวที่เราแปลงมาน่ะ ตัวที่แปลงมาน่ะ มีไหม เอ๊ะ เมื่อกี้เรายังไม่ได้ เอ่อตั้งชื่อเลยใช่ไหม ตัวไอ มันน่าจะชื่อเกี่ยวกับ นี่แหละเนอะ มีไหม ที่ตรงไหน Cell.label ตรงนี้นะครับ มีตรงไหนบ้าง นี่ครับ ตรงนี้นะ เนื้อสา มองหาตัว ชื่อ object มันเนอะพอดีเมื่อกี้ผมลืมพา set นะครับ มันชื่อว่า label นะครับ ตรงนี้นะ ตรงนี้นะ ผมคลิกตัวนี้นะครับคลิกตัวนี้ ตรงนี้ชื่อ object มันคือตัว label นะครับ label ปุ๊บ ผมก็ตามหามัน สมมุติว่าผมไม่รู้คำสั่ง ทำยังไง เปลี่ยน Style Sheetผมจะเปลี่ยนกลับไปกลับมาได้ไหมนะครับผมก็เอาไปดูโค้ดที่แปลง แล้วก็ค้นหาคำว่า Labelดูสิมันมี Set Style Sheet ของตัว Label ไหม นี่อยู่นี้นะครับSet Style Sheet ก็คือคำนี้เลยนะครับ ผมก็ก๊อบไปนะครับได้แล้ว ก๊อบไป นี่นะครับดีนะ ดีตัวนี้นะครับRGB นะครับ RGB ก็คือเป็นผมทำเป็น Red ใช่ไหม ก็คือ 2.5 โอเค ถูกแล้วดังนั้น ผมก็ไปที่ Code ของเราเมื่อกี้นะครับผมจะใส่มันไว้ร่วมกับตัวที่ทำงานด้วยเอ่อ ตัวไหนล่ะPrint Function แล้วกันเนอะ ให้มันทำการเปลี่ยนสีนะครับเปลี่ยนสี จริงๆ เราสร้าง Timer ขึ้นมาเพิ่มได้นะครับสร้าง Timer ขึ้นมาอีกก็ได้ อันนี้ชื่อ Auto Print เนาะ เราจะสร้าง Thumbnail ที่ว่า สำหรับการ Toggle สีก็ได้เปลี่ยนสี ผมใส่ไว้ในนี้เลยเพื่อความรวดเหลือLabel.setStyle เป็นแดง เป็นขาว ได้ไหม สีขาวเป็นอะไรนะ ต่อ 5 หมดเลยนะ สีขาวบ้างสีแดงบ้างเอ่อ จะเช็คจากอะไรดิลองคิดซิ ลองทำยังไงให้มันอี ไอละกันเนาะ ผมใช้ไอเปอร์เซ็นต์ 2 เท่ากับ 0 ดีมั้ยถ้ามันเป็นเลขคู่ให้แผ่นนี้ เซลล์ด้วยนะ อย่าลืมเซลล์นะครับเออ เลอร์เลอร์ เสียง 2 ต้องกับ 0จำได้ไหมตรงนี้นะครับถ้าไม่ใช่ก็คือ elseเอาง่ายๆเลยนะครับผมมี i อยู่ในมือแล้วนะผมก็บอกว่าถ้าคุณหาร 2 น้ำ i มันจะเปลี่ยนไปเรื่อยๆใช่ไหมหาร 2 ต้องกับ 0 เป็นเลขอ่า คู่ผมให้เป็นสีแดง ถ้าเป็นเลขคี่ ผมให้เป็นสีขาว ผมจะกระทิบถูกไหม ผมทำถูกไหมลองดูนะ ผมก็ไม่รู้นะครับว่าในสไลด์ผมไม่ได้ทำแบบนี้นะครับ2..3.. ต้องทำยังไง สตาร์ท จำได้ไหม เราใส่ร่วมกับสตาร์ทไว้นะครับFootnotes อะไรเนี่ยSelf-sheet Objects, Q-Levels, Name คือคำเล่าเออเลอร์อะไรสักอย่างนะครับ แต่มันทำงานนะครับเราต้องลืมอะไรสักอย่างไหม Sale.doubleStyleSheetดูก่อน ลืมมาแล้วแล้วก็ Errorนะครับ ต้องการถึง Error นะเดี๋ยวผมค่อยไปหาดูนะ ว่ามัน Error อะไร เดี๋ยวผมบอกนะครับ มันบอกว่าอะไรเนี่ยแต่มันทำงานนะครับมันทำงานนะโอเคนะโอเค Start นะครับโอเคทำงานนะครับแต่มันขึ้นคุณทรัพย์ มันก็สตาร์ท สต๊อป ได้ครับเดี๋ยวผมต้องไปดูอีกทีมันขึ้น มันขึ้นอันนี้เพราะอะไรอยากให้เร็วกว่านี้ได้ไหม ก็ไปเปลี่ยนตรงนี้ 500 นะ500 ก็ลงหลังดูครับ ต้องสตาร์ทก่อนสิ ใช่ไหมครับ อันตรายครับ ว่าไม่ตะวังนะOK สต๊อป สำหรับปิดแอปนะครับเดี๋ยวครั้งหน้านะครับ เรายังไม่หมดเนี่ย ใช่ไหมอีกเยอะอีกนะครับOK อันนี้เราทำไปแล้วเนอะ เปลี่ยนสีนะครับอ๋อ อันนี้เป็นเขียวแดงใช่ไหม ที่ผมทำในตัวอย่างเป็นเขียวแดงถ้าให้ทำเขียวแดงทำได้ไหม จะได้ใช่ไหมเรารู้สีแล้วนะครับ ถัดไปนะครับ ให้นักศึกษาลองจัด Layout นะครับมันจะมี Layout ให้ตรงนี้นะให้ไปที่ Qt Designer นะครับทำการขยายหน้าต่างนะครับเดี๋ยวผมจะเอาตัว Layout ออกมาให้ดูนะครับนี่คือ Layout นะครับเดี๋ยวเราขยายใหญ่ๆหน่อย เพราะว่ามันต้องใช้เครื่องที่ครับ มันจะมี Vertical นะครับผมเปลี่ยงเอามาให้ดูนะ Vertical ว่าคืออะไรอ่ะ นักศึกษาดูนะครับ ผมจะเอา Up Button วางลงไปใน Vertical นะครับเอา Down Button เวลาวางนะครับ มันก็จะขึ้นว่าเราจะวางข้างบนหลังๆเห็นไหม สีน้ำเงินเห็นไหม มันจะขึ้นสีน้ำเงินนะครับมันก็จะเหลี่ยงให้แค่นั้นเอง งั้นมันก็จะไปด้วยกัน โอเค อันนี้ผมไม่เอา ลบออกมีอะไรอีกนะ มีปกติ แล้วแต่ว่าเราจะเรียนแบบไหนเนอะลองกรีดไหม กรีดนะ กรีดตรงนี้นะครับกรีดผมทำอย่างนี้ดีกว่า ผมลากข้อทั้งหมดเลย แล้วก็ Ctrl C นะครับแต่นั้นก็ขยายตัวอย่างนี้ โคตรวี โคตรวีเลยนะครับ โคตรวี มันอยู่ตรงนี้นะแต่นั้นผมก็นำตัวนี้ไปใส่กิดไลน์เอานะ ดาว ใส่ข้างล่างนะครับปุ่มอันนี้อยู่ด้านซ้ายก็ น่าสาวจะเห็นมันขึ้นสีน้ำเงินนะครับอยู่ด้านซ้ายนะครับ มันเล็กใช่ไหม กดครั้งนึงแล้วก็ลากมันมาให้ครอบ มันก็จะอยู่ 2 Box นะครับสไลด์เดอร์ เอาแสงล่าง เอาแสงล่างไปนะครับโอเคนะครับ มันไม่เต็ม Box นะไม่เต็ม Box ก็ขยายให้มันเต็มเหมือนที่เราต้องการนะครับมีอะไรอีก Start อยู่ตรงนี้นะครับStop อยู่ตรงนี้ ตรงนี้ ที่ด้านขวา ตรงนี้ด้วยโอเค และนั้นมันจะถูกกลุ๊ปบนกลิ่นถูกไว้ ผมไม่ล้างให้ดู ผมกด Ctrl-R ล้างอย่างนี้เลยมันก็จะเป็นแบบนี้ ตัวที่เป็นกลิ่นมันก็จะถูกกลุ๊ปไว้ ดังนั้นมันจะง่ายต่อการเคลื่อนย้ายถ้าไม่อยากใช้กริด ใช้แบบ Vertical หรือหลายๆอันนี้ก็ได้ใช้ Vertical มันจุไว้ในกริด Layout ก็ได้มันก็จะสามารถจัดรูปแบบ คือเราไม่ต้องเล็งมันจะตรงกับกริดให้เราตัวไหนอยากใหญ่กี่ช่องก็ลากให้มันใหญ่เท่านั้นสไลด์เดอร์ ตัวนี้อยากให้ใหญ่ปุ่มไปมาหมดก็ลากเข้าไป คิดก่อนให้มันขึ้นจุดๆก่อนนะ แล้วก็ลากไปขึ้น 2 ช่องอันนี้ก็เป็นตัวกิต เอาไว้จัดรูปแบบเซฟก่อนนะครับ เซฟๆๆมีอะไรอีกนะครับ ไปซี่สลายนะครับกิตเรียนออกแล้วเนาะ ต่อไปแท็บนะครับแท็บนะครับ ถ้าเราเคยใช้โปรแกรมอะไรต่างๆ เวลาเป็น Control มันก็จะมี Tabเราสามารถปราจุแอพพลิเคชันของเราไว้ในหลายๆ Tab ได้เราลองแยก 2 ตัวนี้ไปใส่ 2 Tab สินะครับผมดึง Tab จะอยู่ตรงไหนนะครับTab จะอยู่ใน มันจะมีกลุ่มนี้นะครับ เขาเรียกว่า Container นะครับนี่นะครับ Container มันจะมี Group Bop, Score Area นะครับTool Bop, Tab Widget พวกนี้นะครับ จะเป็นพวกประเภทที่บรรจุนะครับContainer สามารถบรรจุวิจเจ็ตอื่นๆ ได้ แล้วผมลากแคปออกมานะครับลากแคปออกมาแล้วก็สยายให้มันใหญ่ๆ นะครับจากนั้นผมเอาเนี่ยนะครับ นี่นะ ลากคอก แล้วก็ เอามาบรรจุในแท็ปนี้นะครับแท็ปนี้ เรียบร้อยนะครับก็ย้ายด้วยแท็ปได้เลยนะครับนั่นมันจะเห็นว่ามันหายไปใช่ไหมเพราะว่าเราวางตรงไหนในแท็ปมันจะอยู่อย่างนั้นนะครับถ้าแท็ป เราย่อแท็ปมันก็หายไปนะครับเราลากแค่นี้ แค่ที่นี้ครับเรียบร้อยนะครับ แท็ปที่ 1ทีนี้คลิกแคปที่ 2 นะครับแค่ที่ 2 ปุ๊บแล้วก็ลากอีกตัวนึงไปใส่ที่เราทำไว้ ที่เป็นแบบ Grid Layout นะครับเดี๋ยวก็ลากไปแสด ปุ๊บ เห็นหรอแล้วหน้าตานี้ก็หดให้มันเล็กลงซักนะครับที่เราแขยาวพื้นที่ลงเพื่อจัดรูปแบบเฉยๆนะครับโอเค ครับ ลองกด Ctrl R ดูนะครับ แอปพลิเคชันที่มี 2 แท็ป อันนี้เป็นแอปคอนโทรลอีกแท็ปนึงอาจจะแสดงกราฟแบบนี้ก็ได้นะโอเคผมจะเซฟที่นี่ชื่อแท็ปเปลี่ยนยังไงนะชื่อแท็ปคิดที่แท็ปนะคิดที่แท็ปแล้วก็มันจะมีชื่ออยู่ด้านล่างๆเห็นไหมคำว่าแท็ป 1 ไหมนะครับแท็ป 1 นะ ก็เปลี่ยนชื่อตามชอบนะครับ System1 นะครับ ก็เปลี่ยน System1Tab2 เปลี่ยนเป็น Control อะไรก็แล้วแต่นะครับมันก็จะขึ้นตรงนี้นะครับ ขึ้นตรงนี้นะ โอเคแล้วก็ตรง Type ที่นี่ไม่เกี่ยวกับ Tab นะ เราไม่ได้แก้ซักที ตรงนี้มันจะเป็นคล้ายๆเมนูอะไรอย่างนี้นะครับเราก็ใส่อยากใส่คำว่าอะไรก็ใส่ไปนะครับชื่อหลับกระดาษเลยนะครับใส่เสร็จ Enter นะครับถ้าคลิกที่อื่นมันจะหายไปนะครับโอเคลอง Save แล้วก็ลองคลิกโทรน R ดูนะครับนี่นะครับ ก็จะมีแท็ป สองแท็ปก็จะทำงานได้เหมือนกันครับ อันนี้เราไม่ได้เชื่อมโยง Widget เนอะเมื่อวานเราเชื่อมใช่ไหม ที่กดตรงนี้จำได้ไหมชี้ไปที่นี่ครับ แล้วก็ Value Change Display In จำได้ไหมCAP2 ก็ทำได้นะครับ มันจะได้เห็นอะไรเปลี่ยนแปลงบ้างเนอะDisplay In ชี้ไป ชี้ตรงนี้เนอะ ทุกสอนนี้แล้วก็ลากไป Value Change Display In แล้วคลิปตัวเดิมนะครับ แล้วก็ Save มันโทรมาตัวเลขน่าจะเปลี่ยนนะครับ เปลี่ยนเร็วนะครับเปลี่ยนเร็วนะครับ 0.99ตัวสไลเดอร์ถ้าท่านศาลอยากเปลี่ยนค่ามินมะ ก็ไปเปลี่ยนได้นะครับ ใต้ขวานะมองหา 0.99 นี่ มีอยู่ตรงไหนนะครับตัวสไลเดอร์เนี่ยนะ 0.99 ก็หาแบบนี้นะครับ ไล่หาดู 0-200 แล้วกันครับมันก็ต้องเป็น 0-200 โอเคก็ตรงนั้นลองไล่ดูโอเค สตาร์ท นะครับสตาร์ทไม่ได้ ไม่ได้อยู่ใน Python หรอกผิดที่นะ ต้องทำใน Python นะครับ เดี๋ยวไม่ทันนะครับ อ่า ทีนี้นักศึกษาสังเกตไฟล์นะครับนักศึกษาสังเกตไฟล์หลักที่เราแปลงมาให้ดีนะครับ นักศึกษาจะเห็นว่ามันโคตรใหญ่เลยพอเราปรับอะไรต่างต่างไปเห็นไหม ถ้านักศึกษาไม่รู้จักวิธีการที่ ทำการสืบทอดคลาส นักศึกษาต้องมายุ่งกับไฟล์นี้นะครับมันใหญ่มาก เห็นไหมเกือบ 200 มันทัดแล้วนะครับแต่เราไม่ได้ใช้มันนะครับ เราใช้การสืบทอดคลาสไปดังนั้นมันจะใหญ่แค่ไหนก็ขึ้นอยู่กับแอปเราว่ามีอะไรซับซ้อนแค่ไหนนะครับไฟล์ค่อนข้างใหญ่มากตอนนี้นะครับก็โทษ ก็ลันดู โอเคนะครับ ลันบน Python นะครับกด Start Warning ก็จะกระพริบนะครับ ครับ โอเคอ่า ที่สไลด์นะ โอเค ครับ เป็นแล้วนะครับ อ่า ต่อไปการDigital Object นะครับ Digital Object อ่าDigital Object แล้วก็หมดนะครับ ไม่ได้ทำโจทย์เลยนะ ลองไปฝึกตามโจทย์ที่ผมให้ นักศึกษาน่าจะทำได้ก็คือประยุกต์ความรู้เรื่องไฟล์ เรื่องอะไรต่างๆ แล้วก็ไปลองทำดูการ Disable Object นะครับ ดูนะ การ Disable Objectมันเป็นการที่นักศึกษาจะทำการ Disable ปุ่มหรืออะไรก็ตามที่ไม่ให้ผู้ใช้กดมันจะทำการเป็น มันจะกลายเป็น 4 ทึบมาดูกันครับผมจะทำการดิสเซอร์เบอร์ปุ่ม Up กับ Down ตอนเริ่มโปรแกรมจากนั้นเมื่อผมกด Start ให้ปุ่ม Up กับ Down มันเด้งขึ้นมาหรือเราจะดิสเซอร์เบอร์ตัวนี้ดิ ตัว Slider ดีกว่าลองซิว่ามันจะต้องทำยังไง เมื่อเรากด stop ตรงนี้นะ ลองสิself.stopbuttonใส่ตรงนี้นะ มองเห็นไหม ตัวหนังสืออ่ะ ขยายกว่านั้นนะตรงนี้ stopbutton.
อะไรไม่รู้นะครับ ไปที่ document ของเราเมื่อวานนะ ผมก็ไม่รู้นะdocument ของเรานะครับ อยู่ที่ท้าย slide นะครับ ผมทิ้งไว้ให้ทุกคนชื่อว่า sliderคือ slider นะครับ slider นะครับ ดูสิเราจะ disable มันเราจะยังไงคำสั่งอะไรดินะครับ มองดูสิ มีมั้ย ไม่มี ไม่มีอะไรที่คุ้นตา ไม่มีอะไรที่น่าจะเป็นการ Disable มันนั้นต้องไปดูที่ตัวที่มัน Interlaced มา QF-SAC Slider น่าจะมีตัวแม่มัน ตัว SuperCard ของมันมีมั้ย เซต อ่า เซต อีนาโบ หรือ อีนาโบ มีไหม ช่วย อาจารย์ดู ไม่มีเนอะ มีไหม ไม่เห็น มีเลย นะครับ น่ะ ไม่มีหรอ มั้ง น่ะ มีไหม ใครเจอ บ้าง ถ้าไม่มี ก็ไปดู ว่ามัน มาจากไหน ตัว AptX Rider อาจจะอยู่ใน QWidget ก็ได้ทุกตัวที่สืบคาร์ดมาจาก QWidget จะต้องมีตัว QWidget จะเป็นตัวใหญ่มากSet มันต้อง นี่ๆๆๆๆ ผมว่าตัวนี้Set Recible To or Enable For นะครับลองดูครับ นั้นวิธีการไล่หา จะไล่แบบนี้แหละนะครับ ตัวมันไม่มี ก็ดูตัว SuperCard ของมันSuperCard มันไม่มี ก็ดู SuperCard ของ SuperCard ของมันนะครับเพราะว่า QWidget จะเป็นตัวบนสุดนะครับ บนสุดนะครับแล้วก็มา QAbstractSlider แล้วก็ค่อยมา QSlider นะครับ ที่บอกไปเมื่อวานเมื่อกี้ใช้คำว่าอะไรนะSet Disable กับ Set Enable นะ แล้วก็เป็น Boolean ToFall นะครับเป็น OK Set E-N-K-E-N-4ผมพิมพ์ช้าเพราะว่าผมกลับไม่ได้ว่าตัว F ใหญ่หรือเล็กนะครับทีนี้ถ้าผมกดปุ่ม Start ผมจะให้ เอ้ย ไม่ใช่ ตอนเดี๋ยวผมจะใช้อะไรนะSlider เลยเนอะOK เอา Slider หนึ่งนะอ่า Set Enable ToOK นะครับOK ผมลองดูนะ ลองดู โอเค ลองกด stop ก่อนนะครับเห็นไหม ตัว slider ผมจานไปแล้วผมกด stop นะครับทันทันไหม ทันโค้ดผม นี่นะผมใส่แค่ 2 ทัน ทันตรงนี้นะครับตัวนี้เลื่อนไม่ได้แล้วนะครับ เลื่อนไม่ได้แล้วจนก่อนผมกด stop นะครับ เลื่อนได้นะครับ เลื่อนได้ผมกด เปิดกล้องกว่าผมครับ แล้วกด stop เลื่อนได้กด stop ปึ๊บ เห็นไหม มัน gray out นะครับ ก็เรียกว่า gray out นะครับgray out ก็คือ มันจะเป็นสีเทา แล้วก็sub ที่เราใช้กันก็คือ คำว่า gray out นะครับ จะเป็นสีเทาเลื่อนไม่ได้ เราไม่ให้ User ปรับค่าในระหว่างที่เครื่องทำงานเราก็ทำการ Disable มันสิ แค่นั้นเองอยากให้มันทำงานได้ก็ Enable มันแค่ 2 มันทัด ผมใส่ไว้ในฟังก์ชันที่พ่วงกับปุ่มพ่วงกับปุ่ม Stop, K.Out เรียบร้อย Start ทำงานนะครับ แล้วมี warning กับพลิปด้วยนะครับstop อ่ะ get out นะครับ get out เยี่ยมหล่อยนะครับอ่ะ โอเคนะ มีอะไรอีกนะครับอื้ม หมดนะครับ พลิปนะ พลิปซะ พลิปหนึ่งนะ 5 ข้อ เล็กๆอ่ะ เริ่มทำโจทย์ดีพี่พี่ พิษดีกว่าพิษเนอะโจทย์เดี๋ยวก็ได้ทำใน Lab เนอะนักศึกษาลองไปทำดูนะครับ พวกโจทย์ต่างๆ เนี่ยมันเป็นส่วนประกอบของข้อสอนทั้งนั้นเลยนะครับ ข้อนี้นะครับ มีคนส่วนใหญ่ทำไม่ได้เลยข้อนี้นะครับผมจำได้ข้อนี้นะครับ ผมพาทำข้อนี้นะ พอเป็นข้อนี้ผมออกท่าสอบนะ ทำไม่ได้ไม่มีปุ่มแคลไม่มีปุ่มแคลทำไง ให้มันบวกกันยังไงมันจะบวกกันตอนไหน เอาโต้กระดาษหรือใช้ Value Chain ได้ไหม ถ้ามีการเปลี่ยนค่าให้มันคำนวณ ฉะนั้นผมจะอีดิตอันไหนก็คำนวณครับจำได้เลยครับผมพาทำอันนี้ อันนี้ออกข้อสอง ทำไม่ได้โอ้ ไม่รู้จัง มันไม่มีปุ่มแคลล์ไงมึงต้องเข้าใจเอาๆๆๆ พบตัวนๆพบตัวนของเมื่อวานแล้วกับวันนี้นะ 5 ข้อส่วนใหญ่ออกวันนี้ครับแล้วเมื่อวานนะเอาให้เวลาสัก 2 นาที เดี๋ยวใครติดกันหาก็รอไคล์ชั่วโมงนะ วิทย์เสร็จ เดี๋ยวใครยังติดกันหา ก็หาได้