วันจันทร์ที่ 27 กุมภาพันธ์ พ.ศ. 2560

ติดตั้ง Qt5, Qt Creator และ library mysql client.

การเชื่อมต่อ MySql ด้วย Qt ก็เป็นสิ่งจำเป็นเพราะการเขียนโปรแกรมย่อมต้องมีบันทึกข้อมูลหรือเก็บข้อมูลต่างๆ โดยปกติแล้วการเชื่อมต่อโปรแกรมกับฐานข้อมูลต่างๆ ย่อมต้องอาศัยตัวกลางในการเชื่อมต่อข้อมูลตามโปรแกรมนั้นๆ สำหรับ MySql ก็เช่นกัน

sudo apt-get install qt5-default

sudo apt-get install build-dep

sudo apt-get install libqt5sql5-mysql  libmysqlclient-dev libmysql++-dev build-essential cmake mysql-client mysql-server

sudo apt-get install qtcreator


วันพุธที่ 22 กุมภาพันธ์ พ.ศ. 2560

วิธีการติดตั้ง Qt

Qt (ออกเสียง คิวท์ เหมือนคำว่า cute) เป็นระบบโปรแกรมที่ดีตัวหนึ่งในเวลานี้ ทำให้การเขียนโปรแกรมภาษาซีไม่ยุ่งยาก หรือยุ่งยากน้อยกว่าอดีต ถึงแม้ว่าทาง Microsoft จะออก C# ที่ทำให้ระบบการเขียนโปรแกรมง่ายกว่า C++ ในอดีตมาก แต่อย่างไรก็ตาม C# ก็เป็นเฟรมเวิร์คตัวหนึ่งของภาษา C แต่จะสามารถใช้งานบนระบบพื้นฐานของ Windows เท่านั้น

หน้าจอ 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 ทำไมใช้ไม่ได้ ก็งงๆ ไปก่อนเดี๋ยวค่อยหาข้อมูลต่อว่าทำไมถึงเป็นเช่นนั้น


Gtk4 ตอนที่ 6 Defining a Child object

Defining a Child object A Very Simple Editor ในบทความที่ผ่านมาเราสร้างโปรแกรมอ่านไฟล์ชนิดข้อความ และในบทความนี้ก็จะมาปรับแต่งโปรแกรมกันสักหน...