您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

拖放式Glade界面设计与 FreeBASIC编程 + LinuxMint

时间:2022-04-20 11:21:37  来源:  作者:福人的分享

总想把简单东西系统性写好,但简单实用的表述还是挺动脑筋的,今天写的拖放式Glade界面设计与 FreeBASIC编程 + linuxMint,边拉界面边编程,让FreeBASIC程序运行在 Linux平台上。

拟设计的任务

很简单地做个窗体,默认标题是 GtkBuilder; 放个 label,显示 A Label for Nothing; 放个 button标签是 buttonabc; 放个 button标题是 Quit

拟定功能:按buttonabc,窗体标题由 GtkBuilder改变为 FreeBASIC menu,label标签变为 Yes, I got it!; 点击放大窗体到最大,布局跟着变化; 点击 Quit,退出程序。

科普 - 拖放式Glade界面设计与 FreeBASIC编程 + LinuxMint

 

使用工具

atom 代码编译器; glade3.22;gtk3.0; FreeBASIC1.09的fbc编译器。

 

glade设计

按图修改二个红圈标注的地方

科普 - 拖放式Glade界面设计与 FreeBASIC编程 + LinuxMint

 

common页标记“可见”,见红圈。

科普 - 拖放式Glade界面设计与 FreeBASIC编程 + LinuxMint

 

布局器数据,纵向三栏。!勾选“统一大小” --- 漏掉了标记的红圈

科普 - 拖放式Glade界面设计与 FreeBASIC编程 + LinuxMint

 

摆放个 label 并按红圈修改

科普 - 拖放式Glade界面设计与 FreeBASIC编程 + LinuxMint

 

左侧栏选择button,改这两个涂红圈的地方

科普 - 拖放式Glade界面设计与 FreeBASIC编程 + LinuxMint

 

signal页上定义 button click

科普 - 拖放式Glade界面设计与 FreeBASIC编程 + LinuxMint

 

Quit 按如下改

科普 - 拖放式Glade界面设计与 FreeBASIC编程 + LinuxMint

 

 

科普 - 拖放式Glade界面设计与 FreeBASIC编程 + LinuxMint

 

保存界面文件为 mytest.ui,相配合的FreeBASIC程序名为 gladefbc.bas

与mytest.ui互动编写代码

科普 - 拖放式Glade界面设计与 FreeBASIC编程 + LinuxMint

 

说明:最右侧有glade设计器程序缩略图,点击它可视化修改界面保存后atom上右侧的文件内容即刻跟着变化,左侧是配合的FreeBASIC代码。下面是全部源代码。

#INCLUDE ONCE "gtk/gtk3.bi"
#DEFINE Ui_filename "mytest.ui"

DIM SHARED AS GtkBuilder PTR xml1
DIM SHARED AS GObject PTR window1
DIM SHARED AS GObject PTR button1
DIM SHARED AS GObject PTR button2
DIM SHARED AS GObject PTR combo1
DIM SHARED AS GObject PTR label1

SUB on_ClickButton_clicked CDECL ALIAS "on_ClickButton_clicked" ( _
  BYVAL button AS GtkButton PTR, _
  BYVAL user_data AS gpointer) EXPORT

  gtk_label_set_text(GTK_LABEL(label1), @"Yes, I got it!")

  gtk_window_set_title(GTK_WINDOW(window1), @"FreeBASIC Menu")
  g_message("ClickButton clicked!")
END SUB

gtk_init(@__FB_ARGC__, @__FB_ARGV__)
xml1 = gtk_builder_new()

DIM AS GError PTR mess
IF 0 = gtk_builder_add_from_file(xml1, Ui_filename, @mess) THEN
  ?"Fehler/Error (GTK-Builder):"
  ?*mess->message
  END 2
END IF

window1 = gtk_builder_get_object(xml1, "mAIn_win")
button1 = gtk_builder_get_object(xml1, "main_box_button1")
button2 = gtk_builder_get_object(xml1, "main_box_button2")
label1 = gtk_builder_get_object(xml1, "main_box_label")

gtk_builder_connect_signals( xml1, NULL )
gtk_main( )

g_object_unref( xml1 )

END 0

运行结果

在atom上F9,通过build插件自动编译gladefbc.bas为gladefbc并自动运行。

  • 初始显示
科普 - 拖放式Glade界面设计与 FreeBASIC编程 + LinuxMint

 

  • 按buttonabc后的显示
科普 - 拖放式Glade界面设计与 FreeBASIC编程 + LinuxMint

 

  • 按 + 最大化全屏显示
科普 - 拖放式Glade界面设计与 FreeBASIC编程 + LinuxMint

 

按 Quit 退出程序

界面设计与代码编写连动,连gale设计界面,边在atom上查看界面代码,边写FreeBASIC配合代码,随时设计随时改写。



Tags:Glade   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
拖放式Glade界面设计与 FreeBASIC编程 + LinuxMint
总想把简单东西系统性写好,但简单实用的表述还是挺动脑筋的,今天写的拖放式Glade界面设计与 FreeBASIC编程 + LinuxMint,边拉界面边编程,让FreeBASIC程序运行在 Linux平台上。拟...【详细内容】
2022-04-20  Search: Glade  点击:(385)  评论:(0)  加入收藏
▌简易百科推荐
Meta如何将缓存一致性提高到99.99999999%
介绍缓存是一种强大的技术,广泛应用于计算机系统的各个方面,从硬件缓存到操作系统、网络浏览器,尤其是后端开发。对于Meta这样的公司来说,缓存尤为重要,因为它有助于减少延迟、扩...【详细内容】
2024-04-15    dbaplus社群  Tags:Meta   点击:(1)  评论:(0)  加入收藏
SELECT COUNT(*) 会造成全表扫描?回去等通知吧
前言SELECT COUNT(*)会不会导致全表扫描引起慢查询呢?SELECT COUNT(*) FROM SomeTable网上有一种说法,针对无 where_clause 的 COUNT(*),MySQL 是有优化的,优化器会选择成本最小...【详细内容】
2024-04-11  dbaplus社群    Tags:SELECT   点击:(1)  评论:(0)  加入收藏
10年架构师感悟:从问题出发,而非技术
这些感悟并非来自于具体的技术实现,而是关于我在架构设计和实施过程中所体会到的一些软性经验和领悟。我希望通过这些分享,能够激发大家对于架构设计和技术实践的思考,帮助大家...【详细内容】
2024-04-11  dbaplus社群    Tags:架构师   点击:(2)  评论:(0)  加入收藏
Netflix 是如何管理 2.38 亿会员的
作者 | Surabhi Diwan译者 | 明知山策划 | TinaNetflix 高级软件工程师 Surabhi Diwan 在 2023 年旧金山 QCon 大会上发表了题为管理 Netflix 的 2.38 亿会员 的演讲。她在...【详细内容】
2024-04-08    InfoQ  Tags:Netflix   点击:(5)  评论:(0)  加入收藏
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(9)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(16)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(13)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(9)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(14)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(10)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条