本文将讲述Qt in Scala(JVM)开发梗概。
前言
一直有人问Qt的开发情况,希望有个感性的认识。一直也有整理这方面资料的冲动,但时间也很紧迫,所以长话短说。目前将目标锁定Qt Jambi版本吧,熟悉了Qt以后,我对其C++版本的兴趣也十分浓厚,所以,将来再慢慢整理吧。
本篇文章涉及的开发环境如下:windows xp sp2,JDK6u21,Scala 2.8.0 final,Qt Jambi LGPL 4.5.2_01,IDE选NetBeans吧!
列出Qt的文档中心的几个重要资源的链接入口:
◆Qt Jambi 4.5.2_01的文档索引
◆API Javadoc
◆CSS样式说明(内容彼此交叉,十分详尽,你只需要有一点点的CSS基础就能明白)
◆官方实例
◆Qt Jambi 4.5.2_01Binary for Windows 32-bit(点击将自动下载)
关于Qt的点滴,我会以注释的形式写在代码里面,毕竟都是写代码的,对注释会比较敏感。
Hello Qt in Scala
package qt.demo
import com.trolltech.qt.gui._
object HelloQt {
def main(args: Array[String]): Unit = {
QApplication.initialize(args)
(new QLabel("Hello Qt"))。show
QApplication.exec
} }
可能上述代码还能再度简化一下,比如去掉new QLabel两边的括号(但可能会很怪异了)。这个很简单吧,输出结果如下图:
QApplication是Qt的一个全局单例类,就把他看作是一个总控制中心吧。他是一个static类,通过调用QApplication.instance()方法,可获得当前运行过程中的app实例。
QApplication.instance是一个全局控制实例,这里所定义的内容(可以定义的东西,详细请看手册),除非在实例具体某个对象时有具体设置,否则全局都按照instance的设置进行。当然,其实多数时候,我会用他来控制全局的样式定义。
好吧,上述的例子实在简单的有些恶心了,我们来些实际一点的东西:
package qt.demo
import com.trolltech.qt.gui._ import com.trolltech.qt.core.Qt._
object CustomWindow {
val globalStyle = """ * { font-family: Mircosoft Yahei; font-size: 12px; color: #333; } #mainWindow { border: 40px solid #ccc; border-image: url(classpath:qt/demo/resource/window.png) 40 stretch; } """
def main(args: Array[String]): Unit = {
QApplication.initialize(args)
QApplication.instance.setStyleSheet(globalStyle)
val frame = new QFrame() {
this.setObjectName("mainWindow")
// 以下为窗体展现定制,应该在show之前调用
// show以后再调用,会令窗体crash,你需要再次show
this.setWindowFlags(WindowType.FramelessWindowHint)
this.setAttribute(WidgetAttribute.WA_TranslucentBackground, true)
// 由于设定了不使用windows窗体,所以,请手动结束多余的进程
}
frame.show()
QApplication.exec
} }
截图效果如下:
怎么样,开始有点意思了吧?30行代码连样式,其实想做漂亮的界面,也不是那么难吧!
Qt in Scala(JVM)开发梗概
分享到:
正在招生
友情链接