ปัญหาหนึ่งของการพัฒนาโปรแกรมนั้น คือ การเปลี่ยนแปลงของผู้พัฒนาเครื่องมือต่างๆ เช่น เปลี่ยนวิธีการดาวน์โหลด เปลี่ยนนโยบาย อัพเกรดระบบให้ใหม่อยู่เสมอ ตลอดถึงถูกซื้อและนำไปพัฒนาต่อ จากเดิมเป็นเวอร์ชันแจกฟรีก็เปลี่ยนเป็นเวอร์ชันเก็บเงิน ส่วนเวอร์ชันฟรีก็ถูกลดคุณสมบัติอื่นๆ ลง
สำหรับ Qt ก็เช่นกัน มีการเปลี่ยนแปลงและออกเวอร์ชันใหม่อยู่ตลอดเวลา เรียกได้ว่า ไม่ไหวจะเรียนรู้ แต่ครั้นไม่ตามก็ไม่ได้ ต้องคอยอัพเดทกันอยู่เรื่อยๆ
ล่าสุดเข้าไปเพื่อติดตั้งเวอร์ชันใหม่ เดิมเคยดาวน์โหลดโดยคลิกตามจากหน้า Home ของ qt.io ไปเรื่อยๆ แล้วเข้าไปหน้าที่จะเลือกดาวน์โหลดเอง โดยไม่ผ่านระบบอัตโนมัติ แต่ตอนนี้ไม่มีแล้ว จะให้ดาวน์โหลดระบบช่วยติดตั้งมาอย่างเดียว
ระบบช่วยติดตั้งก็ง่าย ดาวน์โหลดไฟล์เล็กๆ มาก่อน แล้วในไฟล์ติดตั้งจะไปดาวน์โหลดไฟล์อื่นๆ มาขณะที่ติดตั้ง แต่จากประสบการณ์มักจะติดตั้งไม่ผ่าน เพราะไปถึงขั้นตอนสุดท้ายประมาณ 98-99% จะค้างนานมาก และสุดท้ายก็ error เกี่ยวกับการเชื่อมต่อ จึงต้องอาศัยดาวน์โหลดไฟล์ขนาดใหญ่มาเก็บไว้ในเครื่องก่อน
ตอนแรกนึกว่าทาง qt ได้ตัดวิธีการดาวน์โหลดแบบเดิมไปเสียแล้ว
วิธีการดาวน์โหลดไฟล์ด้วยตนเองก็เข้าไปที่ https://download.qt.io/archive/qt/ แค่นี้แหละ เข้าไปเลือกเอาจะเอาเวอร์ชันไหนก็ตามถนัด แต่สำหรับผู้เขียนก็นิยมเวอร์ชันล่าสุดล่ะครับ เพราะมันมีอะไรใหม่ๆ มาให้เล่นอยู่เสมอ...
แสดงบทความที่มีป้ายกำกับ Qt แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ Qt แสดงบทความทั้งหมด
วันพฤหัสบดีที่ 9 สิงหาคม พ.ศ. 2561
วันพุธที่ 12 เมษายน พ.ศ. 2560
วิธีการดาวน์โหลดโปรแกรม Qt จาก qt.io
โปรแกรม Qt เป็น IDE ที่ดีมากๆ สำหรับพัฒนาโปรแกรมในหลากหลายแพลตฟอร์ม ถึงแม้ว่าการทำงานจริงอาจจะช้ากว่า C++ อื่นๆ บ้าง ในบางครั้งแต่ก็ทำงานได้ดีโดยเฉพาะในส่วนที่ควบคุมฮาร์ดแวร์บน Raspberry Pi
วันจันทร์ที่ 3 เมษายน พ.ศ. 2560
Qt จาก Command Line
1. สร้างโฟลเดอร์ HelloQt
2. สร้างไฟล์ hello.cpp
nano hello.cpp
3. พิมพ์โค้ด
#include <QApplication>
#include <QPushButton>
int main(int argc, char *argv[]){
QApplication app(argc, argv);
QPushButton *button = new QPushButton("Quit");
QObject::connect(button, SIGNAL(clicked()), &app, SLOT(quit()));
button->show();
return app.exec();
}
วันอังคารที่ 28 มีนาคม พ.ศ. 2560
ประวัติ Qt
ในเมื่อจะเรียนรู้การเขียนโปรแกรมด้วย Qt อยู่แล้วก็ควรที่จะเรียนรู้ประวัติความเป็นมาสักหน่อย เพื่อให้เข้าใจพื้นฐานมากยิ่งขึ้น
วันจันทร์ที่ 20 มีนาคม พ.ศ. 2560
เขียนโปรแกรมด้วย Qt: ตอนที่ 4 จัดการฟอร์ม
การเริ่มต้นเขียนโปรแกรมสิ่งที่สำคัญ คือ พื้นฐานและความเข้าใจอย่างถ่องแท้ทั้งเรื่องระบบงานที่จะเขียนโปรแกรม และเข้าใจเครื่องมือที่ใช้ในการพัฒนาโปรแกรม หลายครั้งที่มีคนถามว่าจะเริ่มต้นเรียนอะไรก่อน คำตอบมักจะได้รับจากผู้เขียน คือ "เริ่มที่แนวคิดและการทำงานพื้นฐาน"
ภาษา C ก็เช่นกัน สิ่งที่ควรเรียนรู้หลักๆ ก็ประกอบด้วย โครงสร้างการเขียนโปรแกรม การวนลูป การทำงานตามเงื่อนไข และการแปลงข้อมูล การเรียกใช้ฟังค์ชันที่เกี่ยวข้องต่างๆ ในเบื้องต้น
การเขียนโปรแกรมด้วย Qt ก็เช่นกัน พื้นฐานเป็นสิ่งสำคัญ นอกจากจะต้องรู้วิธีการเขียนโปรแกรมด้วยภาษา C++ แล้วยังต้องเข้าใจวิธีการของ Qt ตลอดถึงการใช้เครื่องมือในการพัฒนาโปรแกรม นั่นคือ ต้องเข้าใจเกี่ยวกับ IDE ให้มาที่สุด
แต่อย่างไรก็ตามเราคงไม่สามารถเรียนรูู้และเข้าใจโครงสร้างทั้งหมดได้ในระยะเวลาอันสั้น แต่สิ่งที่พึงตระหนักเป็นอย่างยิ่ง คือ วิธีการเขียนโปรแกรม และเทคนิคในการเขียนโปรแกรม ที่สำคัญที่สุด คือ หลักการ และสิ่งที่ควรเป็น การเขียนโปรแกรมก็ คือ ศิลปะชนิดหนึ่งที่ต้องอาศัยการออกแบบเพื่อให้ลงตัวทั้งผู้ใช้และโปรแกรม
ใน Qt จะมีส่วนที่เป็น Qt Creator ซึ่งเป็นส่วนการพัฒนาและออกแบบโปรแกรม ดังนั้นส่วนใหญ่จะต้องผ่านการออกแบบหน้าจอแบบ GUI อยู่มาก จึงจำเป็นต้องเข้าใจหลักการในการใช้งานก่อน
เมื่อกำหนดฟอร์มขึ้นมาสักหนึ่งฟอร์ม สิ่งที่ผู้เขียนโปรแกรมพึงคิดให้ตลอดว่าฟอร์มนั้นจะเป็นแบบไหน เวลาเรียกใช้งานจะแสดงแบบเต็มจอหรือไม่ แสดงกรอบไหม ใช้สีสันแบบใด กำหนดขนาดฟอร์ม ย่อได้ ขยายได้ไหม
สิ่งเหล่านี้ใน Qt สามารถจัดการได้หมด ในบทความนี้จะอธิบายในส่วนที่จำเป็นดังนี้
ภาษา C ก็เช่นกัน สิ่งที่ควรเรียนรู้หลักๆ ก็ประกอบด้วย โครงสร้างการเขียนโปรแกรม การวนลูป การทำงานตามเงื่อนไข และการแปลงข้อมูล การเรียกใช้ฟังค์ชันที่เกี่ยวข้องต่างๆ ในเบื้องต้น
การเขียนโปรแกรมด้วย Qt ก็เช่นกัน พื้นฐานเป็นสิ่งสำคัญ นอกจากจะต้องรู้วิธีการเขียนโปรแกรมด้วยภาษา C++ แล้วยังต้องเข้าใจวิธีการของ Qt ตลอดถึงการใช้เครื่องมือในการพัฒนาโปรแกรม นั่นคือ ต้องเข้าใจเกี่ยวกับ IDE ให้มาที่สุด
แต่อย่างไรก็ตามเราคงไม่สามารถเรียนรูู้และเข้าใจโครงสร้างทั้งหมดได้ในระยะเวลาอันสั้น แต่สิ่งที่พึงตระหนักเป็นอย่างยิ่ง คือ วิธีการเขียนโปรแกรม และเทคนิคในการเขียนโปรแกรม ที่สำคัญที่สุด คือ หลักการ และสิ่งที่ควรเป็น การเขียนโปรแกรมก็ คือ ศิลปะชนิดหนึ่งที่ต้องอาศัยการออกแบบเพื่อให้ลงตัวทั้งผู้ใช้และโปรแกรม
ใน Qt จะมีส่วนที่เป็น Qt Creator ซึ่งเป็นส่วนการพัฒนาและออกแบบโปรแกรม ดังนั้นส่วนใหญ่จะต้องผ่านการออกแบบหน้าจอแบบ GUI อยู่มาก จึงจำเป็นต้องเข้าใจหลักการในการใช้งานก่อน
การกำหนดขนาดและค่าต่างๆ ของฟอร์ม
ฟอร์มที่สร้างขึ้นใน Qt ก็ไม่ต่างจากฟอร์มใน Visual Studio มากนัก เพียงแต่วิธีการและการเรียกในส่วนต่างๆ ไม่เหมือนกันเมื่อกำหนดฟอร์มขึ้นมาสักหนึ่งฟอร์ม สิ่งที่ผู้เขียนโปรแกรมพึงคิดให้ตลอดว่าฟอร์มนั้นจะเป็นแบบไหน เวลาเรียกใช้งานจะแสดงแบบเต็มจอหรือไม่ แสดงกรอบไหม ใช้สีสันแบบใด กำหนดขนาดฟอร์ม ย่อได้ ขยายได้ไหม
สิ่งเหล่านี้ใน Qt สามารถจัดการได้หมด ในบทความนี้จะอธิบายในส่วนที่จำเป็นดังนี้
![]() |
หน้าจอกำหนดขนาดของฟอร์ม |
เขียนโปรแกรมด้วย Qt: ตอนที่ 3 Layouts
widget ใน Qt จะหมายถึงออบเจกต์ต่างๆ ที่มีไว้เพื่อควบคุมการทำงาน หรือเป็นส่วนที่ติดต่อกับผู้ใช้งาน ซึ่งจะเหมือนกับ control ในโปรแกรมที่เขียนผ่านระบบปฏิบัติการ Windows
การเพิ่ม widget ต่างๆ นั้นทำได้ง่ายๆ คือ ลากวางลงบนฟอร์ม แต่สิ่งที่ดูเหมือนจะไม่ง่าย คือ การจัดเรียงชิ้นส่วนต่างๆ ให้สวยงาม แต่ถ้าเข้าใจหลักการแล้วก็ไม่ยาก
บน Windows การวางคอนโทรลส่วนใหญ่จะง่ายในการกำหนดตำแหน่ง เพราะสามารถกำหนดตำแหน่งหรือ Position ได้โดยตรง คือ มีการกำหนดผ่าน Properties ของออบเจ็กต์ แต่สำหรับ Qt ก็มี Properties เหมือนกัน แต่กว่าจะกำหนดได้ บางครั้งก็วุ่นวาย ยากเย็นแสนเข็ญ
แต่กลับกัน การทำงานแบบ Responsive หรือ การเปลี่ยนแปลงตามหน้าจออุปกรณ์ที่ใช้งานในโลกของ Qt กลับทำได้ง่ายกว่า และง่ายมากด้วย (ถ้าเข้าใจหลักการ)
สิ่งที่ทำให้การจัดเรียง widgets บนฟอร์มทำได้ง่ายๆ นั้นเพราะมี Layouts และ Spacer มาช่วยจัดการ โดย Layout จะมี อยู่ 4 แบบ คือ
การเพิ่ม widget ต่างๆ นั้นทำได้ง่ายๆ คือ ลากวางลงบนฟอร์ม แต่สิ่งที่ดูเหมือนจะไม่ง่าย คือ การจัดเรียงชิ้นส่วนต่างๆ ให้สวยงาม แต่ถ้าเข้าใจหลักการแล้วก็ไม่ยาก
บน Windows การวางคอนโทรลส่วนใหญ่จะง่ายในการกำหนดตำแหน่ง เพราะสามารถกำหนดตำแหน่งหรือ Position ได้โดยตรง คือ มีการกำหนดผ่าน Properties ของออบเจ็กต์ แต่สำหรับ Qt ก็มี Properties เหมือนกัน แต่กว่าจะกำหนดได้ บางครั้งก็วุ่นวาย ยากเย็นแสนเข็ญ
แต่กลับกัน การทำงานแบบ Responsive หรือ การเปลี่ยนแปลงตามหน้าจออุปกรณ์ที่ใช้งานในโลกของ Qt กลับทำได้ง่ายกว่า และง่ายมากด้วย (ถ้าเข้าใจหลักการ)
สิ่งที่ทำให้การจัดเรียง widgets บนฟอร์มทำได้ง่ายๆ นั้นเพราะมี Layouts และ Spacer มาช่วยจัดการ โดย Layout จะมี อยู่ 4 แบบ คือ
- Vertical Layout เป็นการจัดเรียงแนวตั้ง
- Horizontal Layout เป็นการจัดเรียงแนวนอน
- Grid Layout เป็นการจัดเรียงแบบกริด คือ จะแบ่งหน้าจอเท่ากันแล้วเรียงจากซ้ายไปขวา และบนลงล่าง เป็นตารางช่องเท่าๆ กัน ก็เหมือนการวาง icon บนหน้าจอโทรศัพท์ หรือ คอมพิวเตอร์นั่นแหละ
- Form Layout เป็นการวางแบบ Form คือ มีข้อความด้านซ้าย และ widget อยู่ขวามือ
วันอาทิตย์ที่ 19 มีนาคม พ.ศ. 2560
เขียนโปรแกรมด้วย Qt: ตอนที่ 1 รู้จักส่วนประกอบของหน้าจอ IDE
วันอาทิตย์ที่ 12 มีนาคม พ.ศ. 2560
Qt Quick Application
การสร้างโปรแกรม GUI ด้วยภาษา C ในอดีตถือว่าเป็นเรื่องยาก กว่าจะสร้างได้ต้องเขียนคำสั่งกันยาวเหยียด ถึงแม้ว่า Visual C++ ของไมโครซอฟท์จะมีหน้าจอสร้างโปรแกรมแบบ GUI แต่ก็ต้องเขียนคำสั่งอีกมาก แต่พอ Visual Studio ปล่อย C# เฟรมเวิร์คออกมาทำให้เกิดการเปลี่ยนแปลงอย่างมาก การเขียนโปรแกรมง่ายขึ้น มีหน้าจอ GUI ช่วยให้ผู้เขียนสามารถสร้างฟอร์ม สร้างโปรแกรมได้ง่ายขึ้น เน้นลากวางกำหนด Properties และเขียนโค้ดควบคุมไม่มากเท่ากับ C++
ส่วนใน Linux การเขียนโปรแกรมก็ยัง อยู่ในรูปแบบเขียนคำสั่งเพื่อเรียกใช้คอนโทรลต่างๆ ของ GUI มีหลากหลาย เช่น GTK, wxWidgets และ Qt
สำหรับ Qt ก็สามารถเลอกเขียนโปรแกรมแบบเขียนคำสั่งอย่างเดียวก็ได้ หรือจะใช้ GUI ในการสร้าง Interface ก็ได้และทำได้ดีผ่านโปรแกรม QtCreator ซึ่งพัฒนาความสามารถมากขึ้นทุกวัน
ส่วนใน Linux การเขียนโปรแกรมก็ยัง อยู่ในรูปแบบเขียนคำสั่งเพื่อเรียกใช้คอนโทรลต่างๆ ของ GUI มีหลากหลาย เช่น GTK, wxWidgets และ Qt
สำหรับ Qt ก็สามารถเลอกเขียนโปรแกรมแบบเขียนคำสั่งอย่างเดียวก็ได้ หรือจะใช้ GUI ในการสร้าง Interface ก็ได้และทำได้ดีผ่านโปรแกรม QtCreator ซึ่งพัฒนาความสามารถมากขึ้นทุกวัน
วันศุกร์ที่ 3 มีนาคม พ.ศ. 2560
qtcreator เก็บ signal และ slot ไว้ตรงไหน
การเขียนโปรแกรมบน Qt จะมีส่วนหนึ่งที่แตกต่างจาก Framework อื่นคือ Signal และ Slot โดยหลักการที่จริงแล้วก็เหมือนกันเพียงแต่ Qt เขาพัฒนาแนวคิดมาอีกแบบหนึ่ง
เวลาเราดำเนินการอะไรจากออบเจ็กต์หนึ่งแล้วย่อมต้องการผลจากการกระทำนั้นไปปรากฏยังออบเจ็กต์หนึ่ง (ไม่งั้นจะทำไปทำไม ใช่ไหมครับ) เช่น เราคลิกปุ่มที่กำหนดเป็นปุ่ม Close เราย่อมต้องการให้ปิดหน้าต่างการแสดงผล
ใน Qt มีหลักการว่า เวลาที่เราคลิกนั้นฝั่งผู้ส่ง (Sender) จะเกิด Signal ขึ้นโดยสัญญานที่เกิดขึ้นนั้นจะส่งต่อไปยังผู้รับ (receive) ผ่านฟังค์ชันหนึ่งเราจะเรียกฟังค์ชันนั้นว่า Slot
ที่สำคัญหนึ่ง Signal สามารถส่งไปให้กับหลายออบเจกต์ หรือออบเจ็กต์เดียวหลาย Slot ก็นับว่าสะดวกดี
เวลาเราดำเนินการอะไรจากออบเจ็กต์หนึ่งแล้วย่อมต้องการผลจากการกระทำนั้นไปปรากฏยังออบเจ็กต์หนึ่ง (ไม่งั้นจะทำไปทำไม ใช่ไหมครับ) เช่น เราคลิกปุ่มที่กำหนดเป็นปุ่ม Close เราย่อมต้องการให้ปิดหน้าต่างการแสดงผล
ใน Qt มีหลักการว่า เวลาที่เราคลิกนั้นฝั่งผู้ส่ง (Sender) จะเกิด Signal ขึ้นโดยสัญญานที่เกิดขึ้นนั้นจะส่งต่อไปยังผู้รับ (receive) ผ่านฟังค์ชันหนึ่งเราจะเรียกฟังค์ชันนั้นว่า Slot
ที่สำคัญหนึ่ง Signal สามารถส่งไปให้กับหลายออบเจกต์ หรือออบเจ็กต์เดียวหลาย Slot ก็นับว่าสะดวกดี
![]() |
ตัวอย่างในภาพนี้ LineEdit จะส่ง Signal ชื่อ textChanged ไปยัง Slot ชื่อ setText ของ Label และ LineEdit ที่อยู่ด้านล่าง |
วันพฤหัสบดีที่ 2 มีนาคม พ.ศ. 2560
โปรแกรมแรกจาก Qt และรายละเอียดในไฟล์ต่างๆ
การเขียนโปรแกรมครั้งแรกในภาษาต่างๆ มักจะนิยมเขียนคำว่า Hello World จนกลายเป็นเรื่องปกติไปแล้ว ในบทความนี้ก็เช่นกัน ขอเริ่มต้นง่ายๆ ด้วยการสร้างโปรแกรมง่ายๆ จาก Qt ก่อนเพื่อทดสอบว่าระบบใช้งานได้ตามปกติหรือไม่
วันพุธที่ 22 กุมภาพันธ์ พ.ศ. 2560
วิธีการติดตั้ง Qt
Qt (ออกเสียง คิวท์ เหมือนคำว่า cute) เป็นระบบโปรแกรมที่ดีตัวหนึ่งในเวลานี้ ทำให้การเขียนโปรแกรมภาษาซีไม่ยุ่งยาก หรือยุ่งยากน้อยกว่าอดีต ถึงแม้ว่าทาง Microsoft จะออก C# ที่ทำให้ระบบการเขียนโปรแกรมง่ายกว่า C++ ในอดีตมาก แต่อย่างไรก็ตาม C# ก็เป็นเฟรมเวิร์คตัวหนึ่งของภาษา C แต่จะสามารถใช้งานบนระบบพื้นฐานของ Windows เท่านั้น
Qt ก็เป็นเฟรมเวิร์คเหมือนกับ C# แต่ข้อดีของ Qt คือ สามารถทำงานบน Linux, Mac, PC และเครื่องแบบ Arm จำพวก Raspberry Pi หรือ Arm Controller อื่นๆ
![]() |
หน้าจอ Qt Creator ที่ทำให้ผู้เขียนโปรแกรมสามารถพัฒนา GUI ได้ง่ายขึ้น |
Qt ก็เป็นเฟรมเวิร์คเหมือนกับ C# แต่ข้อดีของ Qt คือ สามารถทำงานบน Linux, Mac, PC และเครื่องแบบ Arm จำพวก Raspberry Pi หรือ Arm Controller อื่นๆ
วันเสาร์ที่ 4 กุมภาพันธ์ พ.ศ. 2560
Qt: โหลด mysql แล้ว Error
กำลังพัฒนาระบบโดยใช้ MySQL เป็นฐานข้อมูล และใช้ Qt C++ เป็นตัวพัฒนาระบบ การทำงานแบบ GUI อื่นๆ ก็ใช้ได้ผลดี ง่ายต่อการใช้งานและเรียนรู้ แต่ประเด็นปัญหากับเกิดขึ้นเมื่อใช้ MySQL หรือ MariaDB โดยมีข้อความขณะรันโปรแกรมว่า
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
ดูจากข้อความที่ได้แล้วจะเห็นว่า Plugin เกี่ยวกับ SQL Database มีทั้งหมด 7 รายการรวมถึง MySQL ด้วย แต่ทำไมถึงบอกว่าไดร์เวอร์ไม่ได้โหลดใช้งาน
เข้าไปค้นใน google แล้วก็พบว่าปัญหาเกี่ยวกับ libmysql.dll ซึ่งเป็นตัวเชื่อมต่อไปยังฐานข้อมูล ให้คัดลอกไปไว้ในโฟลเดอร์ที่โปรแกรมทำงานด้วย ก็เข้าไปใน MariaDB คัดลอกไฟล์ไปแล้วก็ใช้ไม่ได้ เข้าไปโหลดทั้ง MaridDB Connector และ MySQL Connector ก็ยังใช้ไม่ได้
สุดท้ายเห็นเว็บบอร์ดแห่งหนึ่งบอกว่าให้โหลด MySQL Server แล้วขยายไฟล์และคัดลอกไฟล์ libmysql.dll ไปใช้งาน
เอ้า ลองดูสิ
ว้าว! มันใช้งานได้ ก็อดแปลกใจนิดๆ ว่าทำไม MySQL Connector ทำไมใช้ไม่ได้ ก็งงๆ ไปก่อนเดี๋ยวค่อยหาข้อมูลต่อว่าทำไมถึงเป็นเช่นนั้น
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
ดูจากข้อความที่ได้แล้วจะเห็นว่า Plugin เกี่ยวกับ SQL Database มีทั้งหมด 7 รายการรวมถึง MySQL ด้วย แต่ทำไมถึงบอกว่าไดร์เวอร์ไม่ได้โหลดใช้งาน
เข้าไปค้นใน google แล้วก็พบว่าปัญหาเกี่ยวกับ libmysql.dll ซึ่งเป็นตัวเชื่อมต่อไปยังฐานข้อมูล ให้คัดลอกไปไว้ในโฟลเดอร์ที่โปรแกรมทำงานด้วย ก็เข้าไปใน MariaDB คัดลอกไฟล์ไปแล้วก็ใช้ไม่ได้ เข้าไปโหลดทั้ง MaridDB Connector และ MySQL Connector ก็ยังใช้ไม่ได้
สุดท้ายเห็นเว็บบอร์ดแห่งหนึ่งบอกว่าให้โหลด MySQL Server แล้วขยายไฟล์และคัดลอกไฟล์ libmysql.dll ไปใช้งาน
เอ้า ลองดูสิ
ว้าว! มันใช้งานได้ ก็อดแปลกใจนิดๆ ว่าทำไม MySQL Connector ทำไมใช้ไม่ได้ ก็งงๆ ไปก่อนเดี๋ยวค่อยหาข้อมูลต่อว่าทำไมถึงเป็นเช่นนั้น
วันจันทร์ที่ 21 พฤศจิกายน พ.ศ. 2559
ติดตั้ง PyQt5
การเขียนโปรแกรมบน Raspberry Pi ก็หนีไม่พ้นเรื่อง GUI เลยสนใจติดตั้ง PyQt เพื่อเรียนรู้ พยายามหาวิธีติดตั้งจาก google ก็มีหลากหลายวิธีทั้งเวอร์ชันเก่าใหม่ปนเปกันไปหมด พยายามติดตั้องหลายรอบจนท้อไปบางครั้ง ในใจก็พลอยคิดว่า Python ปกติก็เขียนยากอยู่แล้ว ที่ว่ายากนั่นก็เพราะเป็นโปรแกรมที่ต้องระวังเรื่องการใช้ย่อหน้า หากมีอักขระที่ไม่เหมือนกันแล้ววุ่นวายไปหมด แล้วยังมายุ่งยากในการติดตั้งโปรแกรมอีก (Mac OS)
ติดตั้งผ่านแต่ไม่สามารถใช้งานได้ ระบบแจ้งว่ายังไม่ได้ติดตั้ง พยายามอย่างไรก็ไม่สำเร็จ แต่ก็ลองผิดลองถูกไปเรื่อยๆ ก็นำมาลงไว้เพื่อเป็นแนวทาง และเรียนรู้ต่อไปจนกว่าจะเรียนรู้ได้ทะลุปรุโปร่งค่อยมาอัพเดทให้ถูกต้องกันอีกที
ติดตั้ง Brew เพื่อใช้ติดตั้ง PyQt และ Qt
คำสั่งในการติดตั้ง brew
เมื่อติดตั้งเสร็จแล้วก็สั่งติดตั้ง qt5 และ PyQt5 ด้วยคำสั่ง
brew install python3
brew install qt5
brew install pyqt5
เมื่อติดตั้งแล้วก็ไม่สามารถใช้งานได้ พยายามเขียนโปรแกรมเพื่อทดสอบแบบง่ายๆ ก็จะมี error เกี่ยวกับ PyQt5 ยังไม่ได้ติดตั้งหรือหาไม่เจอ
สุดท้ายไปเจอคำสั่งนี้ เมื่อลองรันดูแล้วก็ใช้งานได้
ถามถึงสาเหตุตอนนี้ก็ตอบไม่ได้ว่าอะไรถูกหรือผิด แต่ก็บันทึกไว้ก่อนค่อหาสาเหตุกันภายหลัง ตอนนี้ขอเรียนรู้วิธีการเขียนโปรแกรมด้วย PyQt ก่อนครับ...
ติดตั้งผ่านแต่ไม่สามารถใช้งานได้ ระบบแจ้งว่ายังไม่ได้ติดตั้ง พยายามอย่างไรก็ไม่สำเร็จ แต่ก็ลองผิดลองถูกไปเรื่อยๆ ก็นำมาลงไว้เพื่อเป็นแนวทาง และเรียนรู้ต่อไปจนกว่าจะเรียนรู้ได้ทะลุปรุโปร่งค่อยมาอัพเดทให้ถูกต้องกันอีกที
ติดตั้ง Brew เพื่อใช้ติดตั้ง PyQt และ Qt
คำสั่งในการติดตั้ง brew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
เมื่อติดตั้งเสร็จแล้วก็สั่งติดตั้ง qt5 และ PyQt5 ด้วยคำสั่ง
brew install python3
brew install qt5
brew install pyqt5
เมื่อติดตั้งแล้วก็ไม่สามารถใช้งานได้ พยายามเขียนโปรแกรมเพื่อทดสอบแบบง่ายๆ ก็จะมี error เกี่ยวกับ PyQt5 ยังไม่ได้ติดตั้งหรือหาไม่เจอ
สุดท้ายไปเจอคำสั่งนี้ เมื่อลองรันดูแล้วก็ใช้งานได้
sudo python3.5 -m pip install PyQt5
ถามถึงสาเหตุตอนนี้ก็ตอบไม่ได้ว่าอะไรถูกหรือผิด แต่ก็บันทึกไว้ก่อนค่อหาสาเหตุกันภายหลัง ตอนนี้ขอเรียนรู้วิธีการเขียนโปรแกรมด้วย PyQt ก่อนครับ...
สมัครสมาชิก:
บทความ (Atom)
Gtk4 ตอนที่ 6 Defining a Child object
Defining a Child object A Very Simple Editor ในบทความที่ผ่านมาเราสร้างโปรแกรมอ่านไฟล์ชนิดข้อความ และในบทความนี้ก็จะมาปรับแต่งโปรแกรมกันสักหน...

-
นักอิเลกโทรนิกส์ทั้งหลายคงจะเข้าใจวิธีวัดค่าของไดโอดเปล่งแสง หรือ LED เป็นอย่างดี แต่สำหรับมือใหม่ ย่อมต้องเรียนรู้ หาประสบการณ์ต่อไปเรื่อยๆ...
-
Ubuntu เป็น OS ที่นิยมนำมาใช้เป็นเซิร์ฟเวอร์อย่างแพร่หลาย ด้วยการติดตั้งง่าย การแก้ไขปัญหาก็ทำได้ดีเพราะมีเอกสาร คนใช้งานอยู่มาก และโดยปกติ ...
-
ยอมรับสารภาพเลยว่าเลิกเขียนโปรแกรมภาษา C ในอดีตเมื่อหลายปีก่อนก็เพราะการเปรียบเทียบสตริงนี่แหละ ทำไม่ได้หาในหนังสือไม่มีวิธีแก้ไข สมัยนั้นยั...