在Qt开发的界面中实现小窗口有多种形式,为开发一个小登录界面。对实现弹窗的方法进行了调研。
WHAT
目标:将界面分为开发者界面和用户界面,两者显示不同的按钮和数据。在用户界面登录开发者模式后就能够显示开发者界面的数据以及操作。
环境:Qt ubuntu
Qdialog :这是常用的一个弹窗,弹窗一旦出现后,主界面将不能够被点击(模态),也可设置为非模态,即主界面能够被点击,但是不能保证Dialog出现在界面最上层。其通过accept等信号进行和主界面的信息通信的。dialog窗口是一个常用的顶层窗口,通常用来显示一个短期信息和简要信息。
QDockWidget:QDockWidget类提供在QMainWindow窗体内停靠或者浮动的界面。可以停靠在如下图所示的位置。
WHY
我们需要一个在点击时登录窗口,因此需要的是一个Qdialog窗口。但为增加对比,也使用Qdock进行实现。
HOW
功能:首先是用户模式,点击进行登录,如果密码正确,则切换成开发者模式,否则提示密码错误。下图两个action分别点击打开一个Dialog以及Dock登录示意窗口。
步骤:建立QmainWindow–>增加new files—>选择Qt Desigher Form。而后编辑界面,加入按钮和文本框即可。
代码可见本人github仓库 YaoQii的qt_ui_demo
具体内容可见Qt官方的说明文档
qdockwidget: https://doc.qt.io/qt-5/qdockwidget.html
qdialog: https://doc.qt.io/qt-5/qdialog.html
tips:
- QLineEdit是单行文本输入。简单的单行文字可用于输入,比如本文所需要的密码 账号等。
- QTextEdit用于多行文本,用于编辑和显示纯文本和大量的文本。
- QPlainTextEdit类提供了一个小部件,用于编辑和显示纯文本。其与QTextEdit很像,但它多用于需要与文本进行处理的地方,而QTextEdit多用于显示,而如果需要处理则使用QPlainTextEdit。