VS2017+QT5.9 QT5.9基础大全 医疗图像处理界面设计

包含Qt5.9所有基本控件的操作,信号和槽函数,和QSS样式

后面将利用Qt5.9和MITK或者MTK库做一个医疗图像处理APP

 

1. Signal and slot
2. QWidget基类
2.1 QRect 常用于定义Geometry;可包含长宽和位置信息
2.2 QSize(int w, int h)
3. Qstring 和编码方式
4. Qlabel
	Content
		- 文字
		- 图片和动图 – Qpixmap; QMovie
		- 富文本(超链接)
	Signal
	 - 富文本超链接
-	linkActivated
-	linkHovered
format
-	selectable
-	editable
5. QPushButton
	Signal
-	click
-	press
format
-	setShortcut
6. QLineEdit
	Content
-	输入验证 (QValidator:整数,双精度,正则)
-	掩码校验(setInputMask)
Signal
-	editingFinished 按下回车 焦点移开
-	returnPressed 格式有效
-	textChanged 可以被setText激发
-	textEdited 不可以被setText激发
	Format
-	seText()
-	setPlaceholderText()
-	setClearButtonEnabled
-	setReadOnly
-	setMaxLength
slot
-	undo() 撤销
-	redo() 恢复
7. 遍历节点(控件)名称(className)
	Content:
-	children()找到主控件下面的所有控件
-	QObject是所有类的基类
-	QWidget 是所以UI控件的基类
-	Objectname控件名称 QMetaObject -> classNames控件类型
-	FindChildren(QString)
8. Layout
[vertical/horizontal…]Layout类不是QWidget的子类,所以不是用于显示UI
代码表示的时候,需要为它创建一个QWidget作为容器
	Content
-	Vertical
-	Horizontal
-	Grid
-	Form

Layout
-	setContentsMargin (int u, int bot, int lef, int right)
-	setSpacing (每个元素之间距离)
-	addWidget;
    	for grid: (QWidget*, int row, int column, Qt::Alignment)
    	for form: addRow(也可以用来添加layout) insertrow
        	QLayoutItem* itemAt(int row, ItemRole role) const
        	Rowcount用于遍历所有表单内容


Widget组件
-	setLayout

-	setMinimumSize(int,int) //设置最大尺寸和最小尺寸
-	setMaximumSize(int,int)

-	sizeHint 推荐尺寸 只能重载,不能修改
    	GrowFlag 必要时可以超过推荐尺寸
    	ExpandFlag >=sizeHint()
    	ShrinkFlag <=sizeHint()
    	IgnoreFlag

    	Fixed 0
    	Minimun GrowFlag
    	Maximum ShrinkFlag
    	Preferred GrowFlag|ShrinkFlag
    	Expanding GrowFlag|ShrinkFlag|ExpandFlag //尽量缩放,最小等于推荐大小
    	MinimumExpanding GrowFlag|ExpandFlag
    	Ignored ShrinkFlag|GrowFlag|IgnoreFlag //尽量缩放,最小可以小于推荐大小
9. QCheckBox
	Content
-	支持快捷键,继承QAbstractButton
-	Text, setText
-	Bool isChecked() const
-	Toggle(bool)
-	setAutoExclusive 单选设定; 对于同一个widget层级的
signal
-	clicked
-	toggle
-	


10. from login to MainWindow
	methods
-	Add dialog for QFormLayout
-	If no interaction, use splashScreen
-	splashScreen can also be used for loading
-	different application in UI can be accomplished by QStackWidget

11. QButtonGroup
	Content
-	setExclusive 默认单选
-	把checkbox或者按钮看做一个组,统一设置
-	checkButton()返回checked的按钮
-	AddButton 加入group
-	Button()遍历button,返回列表
signal
-	buttonClicked
-	buttonPressed
-	buttonReleased
-	buttonToggled

12 QRadioButton
	Content
-	和QCheckBox类似
-	点击pushbutton可以获取radiobutton对应的值

13. QComboBox下拉列表
	Content
-	Editable
-	Item可加入图标
-	Additem() 可以加入QStringList,一次添加
-	往结尾处添加,每次刷新添加需要把之前的删掉
-	InsertItem()
-	removeItem(int index)
	Signal
-	activated() 只有用户点击才计划
-	currentIndexChanged() 用户选中和代码调用
-	currentTextChanged()
-	editTextChanged()
-	highlighted() 鼠标悬浮在选项上时

14. QVariant
	Content
-	QVairant Var
-	T value
-	void setValue(const T &value) (var.setValue(value))
-	QString s = v.value<QString>();
-	Q_DECLARE_METATYPE(Test)
-	 

15 QSlider
	Content 
-	setRange(int min, int max)
-	setMaximum
-	setMinimum
-	setSingleStep 键盘移动的步长
-	setPageStep鼠标点击后移动的步长
-	setOrientation Horizontal Vertical
-	
	signal
-	sliderMoved(int value) 拖动滑动条
-	sliderPressed() 点击事件
-	sliderReleased() 
-	valueChanged(int value) 

format
-	QSlide::groove 滑动条
-	QSlide::handle 拖动按钮
-	Qslider:add-page 按钮右边滑动条
-	QSlider::sub-page 按钮左边滑动条

16 通过UI designer 提升为:
	使用代码中重载的控件类型
	可以改变控件的基类为代码中overload的基类

17. QListWidget
	Content
-	显示一列数据
-	SelectionMode 单选/多选/不能选/连续选择ctrl+点击选择两者之间全部/extendedSelection ctrl+点击选择多个
-	Flow从上下还是左右
-	gridSize
-	iconSIze图标的宽高
-	sortingEnabled内置排序算法
-	QListWidgetItem
-	InsertItem(int row, listWidget)
-	AddItem()
-	
	Signal:

18. QTableWidget
	Content
-	horizontalHeader() verticalHeader()
-	setVerticalScrollBarPolicy
-	selectionMode
-	setSelectionBehavior 选择行 列 或一项
-	setCornerButtonEnabled
-	setSHowGrid setGridStyle
-	setSortingEnabled 

19 QTreeWidget
	Content
-	header()->setVisible
-	setSortingEnabled
-	setAnimated
-	setVerticalScrollBarPolicy setHorizontalScrollBarPolicy
-	selectionMode
-	setSelectionBehavior
20 Qdialog
	Content
-	QColorDialog
-	QErrorDialog
-	QFileDialog
-	QFontDialog
-	QInputDialog
-	QMessageDialog
-	QProgressDialog

-	Exec()阻塞
-	阻塞以事件结束后有返回值(slot)
-	Accept()/reject()/done()

21 QMainWindow
	Content
-	QT菜单
    	QMenuBar
        	New QMenubar(this)
    	QMenu
        	addMenu
    	QAction
        	addAction
    	QActionGroup
        	addAction
        	setExclusive(True)
        	setCheckable(True)
    	menu->exec(QCurosr::pos()) 显示菜单 的位置
    	setShortCut(QString()) 为QAction添加快捷键
signal
-	triggered(QAction*) 包含菜单与其所有子节点 放在menubar可以找到对应menu 和 action;放在menu只能获取对应action
-	triggered()
-	hover(QAction*)
QToolBar
-	是可以在控件中移动的
-	可以有多个工具栏
-	如果加了menubar之后,menubar不能为0
-	AddToolBar(Qt::TopToolBarArea, mainToolBar)
-	LeftToolBarArea = 0x01
-	RightToolBarArea = 0x02
-	TopToolBarArea = 0x03
-	BottomToolBarArea = 0x04
-	setToolButtonStyle
    	ToolButtonIconOnly
    	ToolButtonTextOnly
    	ToolButtonTextBesideIcon
    	ToolButtonTextUnderIcon


QStatusBar
-	宽口下方 显示窗口状态

22. Event事件
	Content
-	鼠标事件
    	QMouseEvent
    	相对坐标 相对于widget位置
    	QPoint windowPos()程序窗口坐标
      	ScreenPose() 屏幕位置
    	mapToGlobal(ev->pos())转为屏幕坐标
    	QCursor::pos() 屏幕坐标
    	EnterEvent(QEvent* )
    	leaveEvent(QEvent* )
    	mouseDoubleClickEvent(QMouseEvent)
    	mouseMoveEvent(QMouseEvent* event) 当setMouseTrack为True
    	mousePressEvent(QMouseEvent* event)
    	mouseReleaseEvent(QMouseEvent* event)
    	
-	键盘事件 
    	QKeyEvent()
    	keyPressEvent
    	keyReleaseEvent
-	窗口大小变化事件
-	重绘事件QPainter
-	Bool event(QEvent *e)
-	返回True处理下一个事件
-	返回False本事件下一个处理函数
-	重载键盘事件举例

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值