GTK2.0 学习 1. 准备 首先观察 gtk2.0 开发包为我们提供的一个文档。阅读下文,您可以知道,对于刚开始开发,我们应该做些什么。 Then add the bin folder to your PATH. Make sure you have no other versions of GTK in PATH. Run: pkg-config --cflags gt
GTK2.0+学习
1.准备
首先观察gtk2.0开发包为我们提供的一个文档。阅读下文,您可以知道,对于刚开始开发,我们应该做些什么。
Then add the bin folder to your PATH. Make sure you have no other
versions of GTK+ in PATH. Run:
pkg-config --cflags gtk+-2.0
and verify that it prints out something reasonable. Run:
gtk-demo
and verify that it works.
To use the MS-Windows theme engine, create a file etc/gtk-2.0/gtkrc
containing the line:
gtk-theme-name = "MS-Windows"
2. 在Visual Studio 2008中搭建GTK+开发环境
1.在http://www.gtk.org/download-windows.html上下载All-in-one bundles包,目前有2.16和2.22。下载完后解压到一个任意的目录中,如“D:\Environment\gtk”。
2.系统环境变量配置:我的电脑 ->属性->高级属性->环境变量->系统变量->Path,在Path值的最后添加“;D:\Environment\gtk\bin”。
3.设置VS2008编译环境
(1)设置包含文件目录:工具->选项->项目和解决方案->VC++目录->显示一下内容的目录->包含文件,添加GTK目录include文件夹和include文件夹里的所有一级文件夹,共12项。还有lib文件夹的子文件夹里面的两个include文件夹,如下图所示。
(2)转到库文件视图,添加GTK目录的Lib文件夹。
4.新建C++的空项目,在项目->项目属性->配置属性->链接器->附加依赖项中添加:
glib-2.0.lib gtk-win32-2.0.lib gdk-win32-2.0.lib gobject-2.0.lib gdk_pixbuf-2.0.lib gthread-2.0.lib gmodule-2.0.lib pango-1.0.lib intl.lib
5.测试:新建CPP文件,写入如下代码,可以正常运行则配置成功。
#include
int main(int argc, char** argv)
{
GtkWidget* window;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(GTK_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_widget_show(window);
gtk_main();
return 0;
}
参考文章
http://blog.csdn.net/zfpnuc/archive/2010/06/04/5646735.aspx
http://www.programmersheaven.com/article/105521-Visual+Studio+2008+configuration+for+GTK%2B+GUI+development/info.aspx
3.开发中字体问题
在程序运行的时候遇到如下警告时:
(GTKTest01.exe:4876): Pango-WARNING **: couldn't load font "微软雅黑 Not-Rotated
9", falling back to "Sans Not-Rotated 9", expect ugly output.
(GTKTest01.exe:4876): Pango-WARNING **: couldn't load font "微软雅黑 9", falling
back to "Sans 9", expect ugly output.
这所代表的意思是系统加载系统默认的字体格式时,我们的gtk程序无法识别。
如在第一部分所说gtk程序开发时加载MS-Windows theme engine。所以我们要人为改变它的gtk程序运行时所用的字体格式。
在C:\gtk\share\themes\MS-Windows\gtk-2.0找到gtkrc文件,在文件末尾加上如下内容:
style "user-font"
{
font_name="Simsun 10"
}
widget_class "*"style"user-font"
这样我们就为gtk程序指定了字体。
4.实例学习
图1.第一个例子
对于以上类子,我们首先要介绍下gtk窗口的构成结构:
Windowà GtkAccelGroupàvbox,hbox…..(布局)àscrolledgroupà各种控件。
注意box的添加控件方法是gtk_box_pack_start.
而对于普通的容器添加使用gtk_container_add.
需要特别介绍的是menu的使用:
MenubaràmenuItemàmenuàmenuItem
图2.menu
而从menuItem加到menu或menubar中,采用gtk_menu_shell_appen方法,而menu到menuItem中采用gtk_menu_item_set_submenu方法。
然后就是对于事件的使用,采用g_signal_connect.而对于函数的参数传递,有待继续学习。
5.存在问题
1.事件处理参数传递
2.头文件xxx.h的处理作用
3.GtkTextView可写,在上加右击事件,增加弹出菜单之后的可写性。

ACID屬性包括原子性、一致性、隔離性和持久性,是數據庫設計的基石。 1.原子性確保事務要么完全成功,要么完全失敗。 2.一致性保證數據庫在事務前後保持一致狀態。 3.隔離性確保事務之間互不干擾。 4.持久性確保事務提交後數據永久保存。

MySQL既是數據庫管理系統(DBMS),也與編程語言緊密相關。 1)作為DBMS,MySQL用於存儲、組織和檢索數據,優化索引可提高查詢性能。 2)通過SQL與編程語言結合,嵌入在如Python中,使用ORM工具如SQLAlchemy可簡化操作。 3)性能優化包括索引、查詢、緩存、分庫分錶和事務管理。

MySQL使用SQL命令管理數據。 1.基本命令包括SELECT、INSERT、UPDATE和DELETE。 2.高級用法涉及JOIN、子查詢和聚合函數。 3.常見錯誤有語法、邏輯和性能問題。 4.優化技巧包括使用索引、避免SELECT*和使用LIMIT。

MySQL是一種高效的關係型數據庫管理系統,適用於存儲和管理數據。其優勢包括高性能查詢、靈活的事務處理和豐富的數據類型。實際應用中,MySQL常用於電商平台、社交網絡和內容管理系統,但需注意性能優化、數據安全和擴展性。

SQL和MySQL的關係是標準語言與具體實現的關係。 1.SQL是用於管理和操作關係數據庫的標準語言,允許進行數據的增、刪、改、查。 2.MySQL是一個具體的數據庫管理系統,使用SQL作為其操作語言,並提供高效的數據存儲和管理。

InnoDB使用redologs和undologs確保數據一致性和可靠性。 1.redologs記錄數據頁修改,確保崩潰恢復和事務持久性。 2.undologs記錄數據原始值,支持事務回滾和MVCC。

EXPLAIN命令的關鍵指標包括type、key、rows和Extra。 1)type反映查詢的訪問類型,值越高效率越高,如const優於ALL。 2)key顯示使用的索引,NULL表示無索引。 3)rows預估掃描行數,影響查詢性能。 4)Extra提供額外信息,如Usingfilesort提示需要優化。

Usingtemporary在MySQL查詢中表示需要創建臨時表,常見於使用DISTINCT、GROUPBY或非索引列的ORDERBY。可以通過優化索引和重寫查詢避免其出現,提升查詢性能。具體來說,Usingtemporary出現在EXPLAIN輸出中時,意味著MySQL需要創建臨時表來處理查詢。這通常發生在以下情況:1)使用DISTINCT或GROUPBY時進行去重或分組;2)ORDERBY包含非索引列時進行排序;3)使用複雜的子查詢或聯接操作。優化方法包括:1)為ORDERBY和GROUPB


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3漢化版
中文版,非常好用

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),