精华内容
下载资源
问答
  • 窗口类型

    2019-11-12 13:58:24
    QMainWindow:可以包含菜单栏、工具栏、状态栏和标题栏,是最常见的窗口形式。 QDialog:是对话窗口的基类。没有菜单栏、工具栏、状态栏。 QWidget:不确定窗口的用途就使用QWidget。 import sys from PyQt5.QtWidgets ...

    主窗口类型

    有三种窗口
    QMainWindow
    QWidget
    QDialog

    QMainWindow:可以包含菜单栏、工具栏、状态栏和标题栏,是最常见的窗口形式。
    QDialog:是对话窗口的基类。没有菜单栏、工具栏、状态栏。
    QWidget:不确定窗口的用途就使用QWidget。

    import sys
    from PyQt5.QtWidgets import QApplication, QMainWindow
    from PyQt5.QtGui import QIcon
    
    
    class MainWindow(QMainWindow):
        def __init__(self, parent=None):
            super(MainWindow, self).__init__(parent)
    
            # 设置主窗口的标题
            self.setWindowTitle('第一个主窗口应用')
    
            # 设置主窗口的尺寸
            self.resize(400, 300)
    
            self.status = self.statusBar()
    
            self.status.showMessage('只存在5秒的消息', 5000)
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        app.setWindowIcon(QIcon('./dragon.ico'))
        main = MainWindow()
        main.show()
        sys.exit(app.exec_())
    
    
    展开全文
  • Windows 中常见的消息类型及其说明

    千次阅读 2018-09-06 22:19:11
    消息类型 消息说明 参数说明 WM_CREATE 当创建一个窗口时响应 WM_DESTOROY 当摧毁一个窗口时响应 WM_MOVE 当窗口被移动时响应 WM_SIZE 当窗口被改变大小时响应 ...

    Windows message 消息

    消息类型 消息说明 参数说明
     WM_CREATE 当创建一个窗口时响应  
     WM_DESTOROY

    当摧毁一个窗口时响应

     
     WM_MOVE 当窗口被移动时响应  
     WM_SIZE 当窗口被改变大小时响应  
     WM_ACTIVATE 当窗口被激活时响应  
     WM_PAINT  当窗口需要刷新显示时响应  
     WM_CLOSE  当窗口关闭时响应  
     WM_DRAWITEM 当自绘子窗口刷新时响应  
     WM_NOTIFY  当子窗口消息反射给主窗口时响应  
     WM_KEYDOWN  当按下键盘时响应  
     WM_KEYUP  当释放键盘时响应  
     WM_CHAR  分析处理后的按键响应  
     WM_INITDIALOG  通常用此消息初始化控件和执行其他任务  
     WM_COMMAND  当单击按钮、菜单项或者工具栏时响应  
     WM_SYSCOMMAND  当选择系统菜单或者选择最大化或最小化窗口时响应  
     WM_TIMER  定时器响应  
     WM_MOUSEMOVE  光标在窗口内移动时响应  
     WM_LBUTTONDOWN  在窗口内单击鼠标左键时响应  
     WM_LBUTTONUP  在窗口内释放鼠标左键时响应  
     WM_LBUTTONDBLCLK  在窗口内双击鼠标左键时响应  

     WM_RBUTTONDOWM

     WM_RBUTTONUP

     WM_RBUTTONDBLCLK

     鼠标右键相关响应  
     WM_DROPFILES  在窗口内拖放文件时响应  

    常用资源符号前缀

    资源符号前缀 代表的资源 资源符号前缀 代表的资源
    IDR_ 快捷键或菜单及相关资源 IDM_

    菜单项

    IDD_ 对话框资源 ID_ 命令项
    IDC_ 光标资源(cursor) IDC_ 控件(control)
    IDI_ 图标资源(icon) IDS_ 串表中的字符串(string)
    IDB_ 位图资源(bitmap) IDP_ 消息框中使用的字符串

     

    展开全文
  • PyQt5 GUI编程——窗口类型

    千次阅读 2019-07-09 07:41:27
    QMainWindow窗口可以包含菜单栏、工具栏、状态栏、标题栏等,是最常见的窗口形式。 QDialog是对话框窗口的基类。对话框主要用来执行短期任务,或者与用户进行互动。特别需要注意的是,QDialog窗口没有...

    窗口类型介绍:
    窗口类型包括 QMainWindow QWidget QDialog三类,这三个类都是用来创建窗口的,可以直接使用,也可以继承后使用。
    接下来介绍一下这三个类的区别:
    QMainWindow窗口可以包含菜单栏、工具栏、状态栏、标题栏等,是最常见的窗口形式。
    QDialog是对话框窗口的基类。对话框主要用来执行短期任务,或者与用户进行互动。特别需要注意的是,QDialog窗口没有菜单栏、工具栏、状态栏等。
    如果确定是主窗口,就使用QMainWindow类,如果是对话框,就使用QDialog类,如果不确定,就使用QWidget类。

    接下来,介绍一下QMainWindow类中比较重要的方法,如下图所示:
    在这里插入图片描述
    还有一点需要注意,QMainWindow不能设置布局(setLayout()方法),因为它有自己的布局。
    为了更好的理解,接下来展示创建一个简单的主窗口的代码:

    import sys
    from PyQt5.QtWidgets import QMainWindow , QApplication
    from PyQt5.QtGui import QIcon
    
    class MainWindow(QMainWindow):
    	def __init__(self , parent=None):
    		super().__init__(parent)
    		self.resize(700, 500)
    		self.status = self.statusBar()
    		self.status.showMessage("状态栏信息",10000)
    		self.setWindowTitle("MainWindow 例子")
    
    if __name__ == '__main__':
    	app = QApplication(sys.argv)
    	app.setWindowIcon(QIcon("./images/cartoon1.ico"))   #需根据实际选择图片的本地路径
    	form = MainWindow()
    	form.show()
    	sys.exit(app.exec_())    #使窗口调用结束时结束程序
    

    接下来介绍如何将主窗口放在屏幕中间
    QMainWindow利用QDesktopWidget类来实现主窗口居中显示。下面展示实现的代码:

    from PyQt5.QtWidgets import QDesktopWidget, QApplication , QMainWindow
    import sys
    
    class Winform(QMainWindow):
    	def __init__(self, parent=None):
    		super().__init__(parent)
    		self.setWindowTitle('主窗口显示在屏幕中间')
    		self.resize(700,500)
    		self.center()
    	def center(self):
    		screen = QDesktopWidget().screenGeometry()   #获得计算机屏幕的大小
    		size = self.geometry()     #获得QWidget窗口的大小
    		self.move((screen.width() - size.width())/2,(screen.height()-size.height())/2)
    	
    if __name__ == "__main__":
    	app = QApplication(sys.argv)
    	win = Winform()
    	win.show()
    	sys.exit(app.exec_())
    

    下面,开始介绍QWidget类:
    QWidget类是所有用户界面对象的基类,所有的窗口和控件都直接或间接继承自QWidget类。
    QMainWindow和QDialog也都继承自QWidget类,QWidget类中的大部分成员函数,QMainWindow和QDialog都可以使用。
    PyQt使用统一的坐标系统来定位窗口控件的位置和大小。以屏幕的左上角为原点,从左向右为x轴正向,从上向下为y轴正向。整个屏幕的坐标系统是用来定位顶层窗口的。窗口内部也有自己的坐标系统,该坐标系统以左上角作为原点,从左向右为x轴正向,从上向下为y轴正向,原点、x轴、y轴围成的区域叫作Client Area(客户区),在客户区的周围则是标题栏(Window Title)和边框(Frame)。具体如下图所示:
    在这里插入图片描述
    QWidget类提供了许多成员函数可以获得这些坐标系统的坐标,这些成员函数大致分为三类:
    QWidget直接提供的成员函数:x()、y()获得窗口左上角的坐标,width()、height()获得客户区的宽度和高度。
    QWidget的geometry()提供的成员函数:x()、y()获得客户区左上角的坐标,width()、height()获得客户区的宽度和高度。
    QWidget的frameGeometry()提供的成员函数:x()、y()获得窗口左上角的坐标,width()、height()获得包含客户区、标题栏和边框在内的整个窗口的宽度和高度。具体如下图所示:
    在这里插入图片描述

    QWidget不包含边框的常用函数
    (1)改变客户区的面积:

    QWidget.resize(witdh, height)
    QWidget.resize(QSize)
    

    除了设置宽度和高度,还可以用鼠标来改变它的大小
    (2)获得客户区的大小:

    QWidget.size()
    

    (3)获得客户区的宽度和高度

    QWidget.width()
    QWidget.height()
    

    (4)设置客户区的宽度和高度

    QWidget.setFixedWidth(int width)
    

    这个函数会使客户区的高度固定,不可以改变,只可以改变宽度。

    QWidget.setFixedHeight(int height)
    

    这时候宽度就是固定的,不可以改变,但是可以改变高度。

    QWidget.setFixedSize(QSize size)
    QWidget.setFixedSize(int width, int height)
    

    这两个函数会使高度和宽度都是固定的,不可以通过鼠标来改变窗口的宽度和高度。

    QWidget.setGeometry(int x, int y, int width, int height)
    QWidget.setGeometry(QRect rect)
    

    这两个函数可以同时改变客户区的大小和位置,可以不单独设置x、y坐标。

    QWidget含边框的常用函数
    通过上面不包含边框函数的设置,就可以设置整个窗口(包含边框)的大小了,所以接下来只介绍获得窗口的位置和大小的函数
    (1)获得窗口的大小和位置

    QWidget.frameGeometry()
    

    (2)设置窗口的位置

    QWidget.move(int x, int y)
    QWidget.move(QPoint point)
    

    (3)获得窗口左上角的坐标

    QWidget.pos()
    

    为了更好的理解,在这里展示使用上述方法的做成的小窗口的代码:

    from PyQt5.QtWidgets import QApplication,QWidget,QPushButton
    import sys
    
    app = QApplication(sys.argv)
    widget = QWidget()
    btn = QPushButton(widget)
    btn.setText("Button")
    btn.move(20, 20)
    widget.resize(300,200)
    widget.move(250, 200)
    widget.setWindowTitle("PyQt坐标系统例子")
    widget.show()
    print("QWidget:")
    print("w.x()=%d" % widget.x())
    print("w.y()=%d" % widget.y())
    print("w.width()=%d" % widget.width())
    print("w.height()=%d" % widget.height())
    print("QWidget.geometry:")
    print("widget.geometry().x()=%d" % widget.geometry().x())
    print("widget.geometry().y()=%d" % widget.geometry().y())
    print("widget.geometry().width()=%d" % widget.geometry().width())
    print("widget.geometry.height()=%d" % widget.geometry().height())
    sys.exit(app.exec_())
    

    下面,开始介绍QDialog类:
    QDialog类的子类主要有QMessageBox、QFileDialog、QFontDialog、QInputDialog等。
    QDialog类的继承结构如下图所示:
    在这里插入图片描述
    QDialog类的常用方法如下图所示:
    在这里插入图片描述
    接下来,介绍QDialog的子类:
    QMessageBox
    QMessageBox是一种通用的弹出式对话框,用于显示消息,允许用户通过单击不同的标准按钮对消息进行反馈。每个标准按钮都有一个预定义的文本、角色和十六进制数。
    QMessageBox类提供了许多常用的弹出式对话框,如提示、警告、错误、询问、关于等对话框。这些不同类型的QMessageBox对话框只是显示时的图标不同,其他功能是一样的。
    QMessageBox类的常用方法如下:
    在这里插入图片描述
    QMessageBox的标准按钮类型如下所示:
    在这里插入图片描述
    5种常用的消息对话框及其显示效果如下所示:
    在这里插入图片描述
    应用实例如下:

    import sys 
    from PyQt5.QtCore import *
    from PyQt5.QtGui import *
    from PyQt5.QtWidgets import *
    
    class MyWindow(QWidget):
    	def __init__(self,parent=None):
    		super().__init__(parent)
    		self.setWindowTitle("QMessageBox例子")
    		self.resize(300,100)
    		self.myButton = QPushButton(self)
    		self.myButton.setText("点击弹出消息框")
    		self.myButton.clicked.connect(self.msg)
    		
    	def msg(self):
    		reply = QMessageBox.information(self,"标题","消息正文",QMessageBox.Yes | QMessageBox.No , QMessageBox.Yes)
    		print(reply)
    		
    if __name__ == '__main__':
    	app = QApplication(sys.argv)
    	myshow = MyWindow()
    	myshow.show()
    	sys.exit(app.exec_())
    

    在这里插入图片描述
    QInputDialog
    QInputDialog控件是一个标准对话框,由一个文本框和两个按钮(OK按钮和Cancel按钮)组成。当用户单击OK按钮或按Enter键后,在父窗口可以收集通过QInputDialog控件输入的信息。QInputDialog控件是QDialog标准对话框的一部分。
    在QInputDialog控件中可以输入数字、字符串或列表中的选项。标签用于提示必要的信息。
    QInputDialog类中的常用方法如下:
    在这里插入图片描述
    应用实例如下:

    import sys
    from PyQt5.QtCore import *
    from PyQt5.QtGui import *
    from PyQt5.QtWidgets import *
    
    class InputdialogDemo(QWidget):
    	def __init__(self,parent=None):
    		super().__init__(parent)
    		layout = QFormLayout()
    		self.btn1 = QPushButton('获得列表里的选项')
    		self.btn1.clicked.connect(self.getItem)
    		self.le1 = QLineEdit()
    		layout.addRow(self.btn1,self.le1)
    		
    		self.btn2 = QPushButton('获得字符串')
    		self.btn2.clicked.connect(self.getIext)
    		self.le2 = QLineEdit()
    		layout.addRow(self.btn2,self.le2)
    		
    		self.btn3 = QPushButton('获得整数')
    		self.btn3.clicked.connect(self.getInt)
    		self.le3 = QLineEdit()
    		layout.addRow(self.btn3,self.le3)
    		self.setLayout(layout)
    		self.setWindowTitle('Input Dialog 例子')
    		
    	def getItem(self):
    		items = ('C', 'C++', 'Java', 'Python')
    		item, ok = QInputDialog.getItem(self, 'select input dialog', '语言列表', items, 0, False)
    		if ok and item:
    			self.le1.setText(item)
    			
    	def getIext(self):
    		text, ok = QInputDialog.getText(self, 'Text Input Dialog', '输入姓名:')
    		if ok:
    			self.le2.setText(str(text))
    			
    	def getInt(self):
    		num, ok = QInputDialog.getInt(self, 'integer input dialog', '输入数字')
    		if ok:
    			self.le3.setText(str(num))
    			
    if __name__ == '__main__':
    	app = QApplication(sys.argv)
    	demo = InputdialogDemo()
    	demo.show()
    	sys.exit(app.exec_())
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    当调用QInputDialog.getItem()函数时,QInputDialog控件包含一个QCombox控件和两个按钮,用户从QCombox中选择一个选项后,允许用户确认或取消操作。
    当调用QInputDialog.getText()函数时,QInputDialog控件包含一个文本框和两个按钮,允许用户输入字符串。
    当调用QInputDialog。getInt()函数时,QInputDialog包含一个QSpinBox控件和两个按钮,允许用户输入整数。

    QFontDialog
    QFontDialog控件是一个常用的字体选择对话框,可以让用户选择所显示文本的字号大小、样式和格式。QFontDialog是QDialog标准对话框的一部分。使用QFontDialog类的静态方法getFont(),可以从字体选择对话框中选择文本的显示字号大小、样式和格式。
    应用实例如下:

    import sys
    from PyQt5.QtCore import *
    from PyQt5.QtGui import *
    from PyQt5.QtWidgets import *
    
    class FontDialogDemo(QWidget):
    	def __init__(self,parent=None):
    		super().__init__(parent)
    		layout = QVBoxLayout()
    		self.fontButton = QPushButton("choose font")
    		self.fontButton.clicked.connect(self.getFont)
    		layout.addWidget(self.fontButton)
    		self.fontLineEdit = QLabel("Hello,测试字体例子")
    		layout.addWidget(self.fontLineEdit)
    		self.setLayout(layout)
    		self.setWindowTitle("Font Dialog例子")
    		
    	def getFont(self):
    		#返回所选择的字体和函数执行的状态
    		font,ok = QFontDialog.getFont()  
    		#ok的结果为True或False  
    		print(ok)           
    		if ok:
    			#设置格式
    			self.fontLineEdit.setFont(font)    
    			
    if __name__ == "__main__":
    	app = QApplication(sys.argv)
    	demo = FontDialogDemo()
    	demo.show()
    	sys.exit(app.exec_())
    

    在这里插入图片描述
    QFileDialog
    QFileDialog是用于打开和保存文件的标准对话框。QFileDialog类继承自QDialog类。
    QFileDialog在打开文件时使用了文件过滤器,用于显示指定扩展名的文件。也可以设置使用QFileDialog打开文件时的起始目录和指定扩展名的文件。
    QFileDialog类的常用方法如下:
    在这里插入图片描述
    在这里插入图片描述
    应用实例如下:

    import sys
    from PyQt5.QtCore import *
    from PyQt5.QtGui import *
    from PyQt5.QtWidgets import *
    
    class filedialogdemo(QWidget):
    	def __init__(self,parent=None):
    		super().__init__(parent)
    		layout = QVBoxLayout()
    		self.btn = QPushButton("加载图片")
    		self.btn.clicked.connect(self.getfile)
    		layout.addWidget(self.btn)
    		self.le = QLabel("")
    		layout.addWidget(self.le)
    		self.btn1 = QPushButton("加载文本文件")
    		self.btn1.clicked.connect(self.getfiles)
    		layout.addWidget(self.btn1)
    		self.contents = QTextEdit()
    		layout.addWidget(self.contents)
    		self.setLayout(layout)
    		self.setWindowTitle("File Dialog 例子")
    		
    	def getfile(self):
    		fname, _ = QFileDialog.getOpenFileName(self,'Open file','c:\\','Image files (*.jpg *.gif)')
    		self.le.setPixmap(QPixmap(fname))
    		
    	def getfiles(self):
    		dlg = QFileDialog()
    		dlg.setFileMode(QFileDialog.AnyFile)
    		#只列出文件
    		dlg.setFilter(QDir.Files)
    		
    		#exec_()方法用于选择文件
    		if dlg.exec_():           
    			filenames = dlg.selectedFiles()
    			f = open(filenames[0],'r')
    			with f:
    				data = f.read()
    				self.contents.setText(data)
    				
    if __name__ == '__main__':
    	app = QApplication(sys.argv)
    	ex = filedialogdemo()
    	ex.show()
    	sys.exit(app.exec_())
    

    在这里插入图片描述
    在这里插入图片描述
    第一个按钮使用QFileDialog.getOpenFileName(),调用文件对话框来显示图像,并显示在一个标签控件中。它负责打开C盘目录下的文件。
    在QFileDialog.getOpenFileName()函数中:
    第一个参数用于指定父组件;
    第二个参数是QFileDialog对话框的标题;
    第三个参数是对话框显示时默认打开的目录
    第四个参数是对话框中文件扩展名过滤器

    第二个按钮使用文件对话框对象的exec_()方法来选择文件,并把所选文件的内容显示在文本编辑控件中。

    展开全文
  • 景观指数是景观生态学的常见指标,可用于不同生态系统特征识别,常用计算软件包括Fragstats、Patch Analyst等。其中Fragstats适用于栅格要素分析,包括无采样、全局采样与局部采样方式,并提供景观、类型及斑块三...
    景观指数是景观生态学的常见指标,可用于不同生态系统的特征识别,常用计算软件包括Fragstats、Patch Analyst等。其中Fragstats适用于栅格要素分析,包括无采样、全局采样与局部采样方式,并提供景观、类型及斑块三种水平共超过100种指数,是最为常用的计算软件,目前已更新到版本4(version4.2)。

    本文以北京市城六区为例,论述基于Fragstats移动窗口法计算景观水平绿地聚集度指数的技术流程。其中Fragstats版本为version4.2,操作平台为windows10。

    01

    软件安装与数据获取

    1.1 Fragstats下载与安装。Fragstats version4.2 由Dr. McGarigal与Dr. Cushman共同开发、Eduard Ene进行程序设计, 下载网址为:http://www.umass.edu/landeco/research/fragstats/downloads/fragstats_downloads.html,下载完成后按默认方式安装即可。

    1.2 绿地数据获取。此处的绿地类型与《城市用地分类与规划建设用地标准》对应,可通过影像分类获取,具体方法参见影像分类教程。

    需要说明的是,分类后实际获取的为耕地,林地,水域,城乡、工矿、居民用地等土地覆盖类型,考虑到城六区属于高度人工化环境少有天然林,因此将林地等同于绿地。

    02

    初始化设置

    2.1 加载土地覆盖数据。打开Fragstats,依次点击New——Add layer,设置Data type 为GeoTIFF grid,输入城六区土地覆盖数据集。

    应注意的是栅格数据坐标系需为投影坐标系,且文件保存路径为全英文,否则无法正确运行。

    30e0502089daf8125a8414a51092f285.png67447dcea6619797a8f81f08ac155128.png

    图1 加载栅格数据

    2.2 加载类型描述表(class descriptors table)。新建文本文档,输入类型ID、类名Name、逻辑值Enabled与逻辑值IsBackground等属性信息并保存,将后缀名改为“.fcd”。其中ID指类型的数值,与栅格数据集中的Value值对应;Name是对类型的描述,它将作为类型名称输出到FRAGSTATS输出文件中;逻辑值Enabled指示是否计算和输出相应类型的统计信息;逻辑值IsBackground指示是否将每个类型作为背景,“true”表示将对应的类型重新分类为前面指定的背景值(本例中为999)。本例中“lindi”的“Enabled”写为“true”,其他类型则为“false”【1】。

    应注意类型描述文件中的属性信息行数应不小于栅格数据集中的信息行数,且name值不能用中文。创建完成后依次点击“Input layers”——“Class descriptors Browse”,导入类型描述表。

    a0255983046da1ab743e4ed8c460997a.png

    图2 类描述表设置

    03

    分析参数设置

    3.1 邻域规则设置。Fragstats提供4邻域规则与8邻域规则,本例中选择8邻域,意即有任意公共顶点即为相邻。

    3.2 采样策略设置(Sampling strategy)。依次选择全局采样(Exhaustive sampling)中的移动窗口“Moving window”——景观指数"Landscape metrics",设置窗口大小及border/nodata最大接受值。

    移动窗口大小与计算时间正相关,即窗口越小,计算时间越快,应根据实际用途进行设定。本例中选择500米半径的圆形窗口,最大接受值采取默认值0.00%。

    ec89d3fc4b9fb379a4096123cb0e5295.png

    图3 移动窗口设置

    04

    景观指数计算

    4.1 Fragstats提供斑块(Patch)、类型(Class)、景观(Landscape)三种水平的指数计算,其中斑块、类型水平包括面积-边界(Area-Edge)、形状(Shape)、核心区域(Core area)、对比(Contrast)、聚集(Aggregation)等指数类,景观水平在此基础上增加了多样性(Diversity)指数类。

    9e2b90b4e2e1a9211922796b01b22566.png

    图4 景观指数选择

    本例选择景观水平上的聚集度指数,以测算城六区内绿地的聚集水平。聚集度指数基于同类型斑块像元间的公共边界长度,其表达式如图5所示。

    36f65916fd4fab1e3ec1848cc9a5fbfd.png

    图5 聚集度指数表达式

    4.2点击“run”开始运行,运行时长由处理器速度和计算机内存而定。其结果为栅格文件,可导入ArcGIS中查看绿地聚集度的空间分布差异。

    687dd5ad00fafbc5936d0d86ad6ad72b.png

    图6 绿地聚集度

    05

    结语

    景观指数是反映景观结构与空间格局的定量指标,目前已成为景观生态学领域常用的分析景观格局、度量空间异质性的重要方法【2】。不同水平下的指数结果往往代表不同含义,应在把握指数概念及其数学与生态学含义的基础上,根据需要对指数进行筛选,以进一步揭示景观中存在的潜在秩序及其成因与演变规律。

    注:由于作者水平有限,论述中难免有疏漏。阅读中如有任何疑问或建议均可在后台留言,在此表示感谢!

    参考文献

    【1】McGarigal, K., SA Cushman, and E Ene. 2012. FRAGSTATS v4: Spatial Pattern Analysis Program for Categorical and Continuous Maps. Computer software program produced by the authors at the University of Massachusetts, Amherst. Available at the following web site: http://www.umass.edu/landeco/research/fragstats/fragstats.html

    【2】邬建国.景观生态学:格局、过程、 尺度与等级[M]. 北京:高等教育出版社,2007

    作者:Mango

    编辑:LJ

    ···

    延伸阅读

    ArcGIS影像分类入门——以北京市城六区例

    ArcGIS影像分类入室——以北京市城六区例

    点击蓝字关注我们

    展开全文
  • PyQt5之窗口类型

    2018-12-10 20:34:00
    [TOC] 注:原创不易,转载请务必注明原作者和出处,感谢支持! 一 写在开头 1.1 本文内容 ...QMainWindow窗口可以包含菜单栏、工具栏、状态栏、标题栏等,是最常见的窗口形式,是GUI程序的主窗口。 Q...
  • 本篇文章主要讨论窗口类型、坐标系统、Z-Order,Z-Order确定跟窗口类型有关系,先看窗口类型。一、窗口类型1.1、Window类型一、窗口类型1.1、Window类型Android系统Window有很多个,大体上来说,Framework定义...
  • 文章目录问题描述解题报告实现代码参考文献 问题描述 在一排树中,第 i 棵树产生 tree[i] 型水果。...你有两个篮子,每个篮子可以携带任何数量水果,但你希望每个篮子只携带一种类型的水果。 用这个程序
  • QMainWindow: 可以包含菜单栏,工具栏,状态栏和标题栏,是最常见的窗口形式 QWidget: 不确定窗口的用途的时候, 就用这个。 QDialog: 是对话窗口的基类。是没有工具栏,状态栏,菜单栏的。 简单案例: from...
  • electron创建一般窗口和自定义的窗口方式都非常简单,总共分为两步,第一步是创建窗口,定义窗口类型。第二步是设计页面内容,页面内容决定了窗口最终的展示效果。 步骤一、创建窗口 electron创建窗口的类叫做...
  • QMainWindow窗口可以包含菜单栏、工具栏、状态栏、标题栏等,是最常见的窗口形式,也是GUI程序的主窗口。QDialog是对话框窗口的基类。对话框主要用来执行短期任务,或者与用户互动,它可以是模态的,也可以是非模态...
  • js常见错误类型

    2019-08-06 09:54:29
    js 错误类型 A、Uncaught TypeError: Failed to ...未捕获的类型错误:不能在“窗口”环境上调用执行“getComputedStyle”方法:因为参数1不是“元素”类型没有填入参数或者填入参数第一个参数不是对应参数类...
  • QMainWindow窗口可以包含菜单栏、工具栏、状态栏、标题栏等,是最常见的窗口形式,也是GUI程序的主窗口。QDialog是对话框窗口的基类。对话框主要用来执行短期任务,或者与用户互动,它可以是模态的,也可以是非模态...
  • PB窗口类型详细总结

    千次阅读 2008-03-31 20:54:00
    在模式窗口中的操作没有完成之前,不能进入别的窗口进行其他操作。一般用于用户确认重要信息,在继续其他操作之前必须做出反馈,如错误提示窗口。非模式窗口则不同,允许同时打开多个,随时切换到任意一个中工作。最...
  • 那我们今晚就分享一下《游戏中常见场景类型和风格》首先我们先说说游戏类型,不同游戏场景需求也是不一样 游戏场景都有哪几种类型:1. PC端游2.5D回合制(如梦幻西游) 3D角色扮演 独立游戏等(如古剑奇谭) ...
  • Windows(窗口)是处理无限数据流的核心。...本文将重点介绍 Flink 中的窗口,以及常见的窗口类型。一个窗口处理的 Flink 程序一般结构如下:(1) Keyed Windows:stream .keyBy(...) .window(...) "assigner" ...
  • QMainWindow:可以包含菜单栏、工具栏、状态栏和标题栏,是最常见的窗口形式。 QDialog:是对话窗口的基类。没有菜单栏、工具栏、状态栏。 QWidget:不确定主窗口的用途,就使用QWidget。 创建窗口代码如下: import...
  • 本篇文章主要讨论窗口类型、坐标系统、Z-Order,Z-Order确定跟窗口类型有关系,先看窗口类型。一、窗口类型1.1、Window类型一、窗口类型1.1、Window类型Android系统Window有很多个,大体上来说,Framework定义...
  • QMainWindow窗口可以包含菜单栏、工具栏、状态栏、标题栏等,是最常见的窗口形式,也是GUI程序的主窗口。QDialog是对话框窗口的基类。对话框主要用来执行短期任务,或者与用户互动,它可以是模态的,也可以是非模态...
  • MFC常见数据类型

    2006-03-07 09:06:00
    MFC数据类型下面这些是和Win32程序共同使用数据类型BOOL:布尔值,取值为TRUE or FALSEBSTR:32-bit 字符指针BYTE:8-bit整数,未带正负号COLORREF:32-bit数值,代表一个颜色值DWORD:32-bit整数,未带正负号LONG...
  • MFC常见数据类型

    2007-03-28 22:13:00
    32-bit 字符指针BYTE:8-bit整数,未带正负号COLORREF:32-bit数值,代表一个颜色值DWORD:32-bit整数,未带正负号LONG:32-bit整数,带正负号LPARAM:32-bit整数,作为窗口函数或callback函数一个参数LPCSTR:...
  • 作者:GuaKin_Huang链接:https://www.jianshu.com/p/bfbe2858c21fJava中两种异常类型是什么?他们有什么区别?Throwable包含了错误(Error)和异常(Excetion)两类;Exception又包含了运行时异常(RuntimeException...
  • 43. Java 中两种异常类型是什么?他们有什么区别?Java 中有两种异常:受检查(checked)异常和不受检查(unchecked)异常。不受检查异常不需要在方法或者是构造函数上声明,就算方法或者是构造函数执行可能会...
  • 消息的分段即称为窗口,流处理系统支持的窗口有很多类型,最常见的就是时间窗口,基于时间间隔对消息进行分段处理。本节主要介绍Flink流处理系统支持的各种时间窗口。 对于目前大部分流处理系统来说,时间窗口一般是...
  • Excel 中常见的四种数据类型,在默认情况下(对齐方式无,格式常规)的特征:字符型:汉字、字母、符号——左对齐数值型:整数、小数、货币——右对齐日期型:日期、时间——右对齐逻辑型:TRUE、FALSE——居中 ...
  • 论坛里问这个问题多不胜数,但回答都不尽人意,没有考虑到I浏览器的类型,版本,希望这一文章能帮到大家,有错请指教!本程序ie5,6,ns7下通过New Page 1by fason(2003-5-20)-->function CloseWin(){var ua=navigator....
  • 窗口基础

    2019-07-25 22:31:22
    QMainWindow窗口可以包含菜单栏、工具栏、状态栏和标题栏等,是最常见的窗口形式,也可以说是GUI程序的主窗口。 QWidget是对话框窗口的基类。对话框主要用来执行短期任务,或者与用户进行互动。 如果是主窗口,就...
  • 景观指数是景观生态学的常见指标,可用于不同生态系统特征识别,常用计算软件包括Fragstats、Patch Analyst等。其中Fragstats适用于栅格要素分析,包括无采样、全局采样与局部采样方式,并提供景观、类型及斑块三...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,018
精华内容 407
关键字:

常见的窗口类型