C3:Date and Time

本教程通过四个具体案例展示了如何使用Qt进行应用开发,包括实时显示时间的LCDWidget、结合日历与日期编辑的DateEditWidget、创建酒店预订表单的CreateHotelReservationForm以及填充表格数据的TableWidgetItem。每个案例都提供了完整的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LCD Widget

Final Result

How to do it?

class MyForm(QDialog):
    def __init__(self):
        super().__init__()
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
        timer = QtCore.QTimer(self)
        timer.timeout.connect(self.showlcd)
        timer.start(1000)
        self.showlcd()
    def showlcd(self):
        time = QtCore.QTime.currentTime()
        text = time.toString('hh:mm')
        self.ui.lcdNumber.display(text)
if __name__=="__main__":
    app = QApplication(sys.argv)
    w = MyForm()
    w.show()
    sys.exit(app.exec_())

Date Edit Widget

Final Result

How to do it?

class MyForm(QDialog):
    def __init__(self):
        super().__init__()
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
        self.ui.calendarWidget.selectionChanged.connect(self.dispdate)
        self.show()
    def dispdate(self):
        self.ui.dateEdit.setDisplayFormat("yyyy MMM d")
        self.ui.dateEdit.setDate(self.ui.calendarWidget.selectedDate())
if __name__=="__main__":
    app = QApplication(sys.argv)
    w = MyForm()
    w.show()
    sys.exit(app.exec_())

Create Hotel Reservation Form

Final Result

How to do it?

class MyForm(QDialog):
    def __init__(self):
        super().__init__()
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
        self.roomtypes=['suite','super luxury','super deluxe','ordinary']
        self.addcontent()
        self.ui.pushButton.clicked.connect(self.computeRoomRent)
        self.show()
    def addcontent(self):
        for i in self.roomtypes:
            self.ui.comboBox.addItem(i)
    def computeRoomRent(self):
        dateselected = self.ui.calendarWidget.selectedDate()
        dateinstring = str(dateselected.toPyDate())
        noOfDays = self.ui.spinBox.value()
        chosenRoomType = self.ui.comboBox.itemText(self.ui.comboBox.currentIndex())
        self.ui.message.setText("Date of reservation: "+dateinstring+" , Number of days : "+ str(noOfDays) + " and Room type selected : " + chosenRoomType )
        roomRent = 0
        if chosenRoomType == "suite":
            roomRent=40
        if chosenRoomType=="super luxury":
            roomRent=30
        if chosenRoomType=="super deluxe":
            roomRent=20
        if chosenRoomType=="ordinary":
            roomRent=10
        total = roomRent*noOfDays
        self.ui.message1.setText("Room Rent for single day for "+chosenRoomType+" type is "+str(roomRent)+"$.nTotal room rent is "+str(total))
if __name__=="__main__":
    app = QApplication(sys.argv)
    w = MyForm()
    w.show()
    sys.exit(app.exec_())

Table Widget Item

Final Result

How to do it?

class MyForm(QDialog):
    def __init__(self,data):
        super().__init__()
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
        self.data = data
        self.addcontent()
    def addcontent(self):
        row = 0
        for tup in self.data:
            col=0
            for item in tup:
                oneitem = QTableWidgetItem(item)
                self.ui.tableWidget.setItem(row,col,oneitem)
                col+=1
            row+=1
data=[]
data.append(("suite",'$40'))
data.append(("super luxury",'$30'))
data.append(("super deluxe",'$20'))
data.append(("ordinary",'$10'))
if __name__=="__main__":
    app = QApplication(sys.argv)
    w = MyForm(data)
    w.show()
    sys.exit(app.exec_())

 

 

pre.nc的ncl_filedump输出是这样的: Variable: f Type: file filename: pre path: /mnt/d/vs/1111/biyelunwen/precipitation_monthly-mean_era5_1979-2018_v1.0.nc Number of Attributes:9 history : Wed Dec 23 11:29:49 2020: ncpdq -a time,latitude,longitude /tmp/tmp2rggwnzz.nc_temp /tmp/tmp2rggwnzz.nc Conventions : CF-1.7 Institution : (C) VITO, Belgium References : See documentation for full references at https://climate.copernicus.eu/ Contact : Please contact Copernicus User Support on the Copernicus Climate Change Service website (https://climate.copernicus.eu/) Version : v1 Title : C3S D427 SIS Biodiversity / Bio-climate indicators / precipitation_monthly-mean / ERA5 / 40-year month_00 / 0.5degree_global Source : ERA5 dataset Licence : ECMWF Copernicus licence 1.0 dimensions: latitude = 348 longitude = 720 time = 480 variables: Variable: latitude Type: double Total Size: 348 values 2784 bytes Number of Dimensions: 1 Dimensions and sizes: [ 348 <latitude> ] Coordinates: latitude: [-89.75..83.75] Number of Attributes: 9 _FillValue : nan axis : Y long_name : latitude standard_name : latitude units : degrees_north stored_direction : increasing type : double valid_max : 90 valid_min : -90 Variable: longitude Type: double Total Size: 720 values 5760 bytes Number of Dimensions: 1 Dimensions and sizes: [ 720 <longitude> ] Coordinates: longitude: [-179.75..179.75] Number of Attributes: 9 _FillValue : nan axis : X long_name : longitude standard_name : longitude units : degrees_east stored_direction : increasing type : double valid_max : 180 valid_min : -180 Variable: time Type: int64 Total Size: 480 values 3840 bytes Number of Dimensions: 1 Dimensions and sizes: [ 480 <time> ] Coordinates: time: [ 0.. 0] Number of Attributes: 4 units : days since 1979-01-01 00:00:00 calendar : proleptic_gregorian standard_name : time long_name : time Variable: precipitation_monthly-mean Type: float Total Size: 120268800 values 481075200 bytes Number of Dimensions: 3 Dimensions and sizes: [ 480 <time> x 348 <
03-28
SELECT * FROM (WITH temp AS (SELECT t1.*, t2.NAME AS domainName, t3.NAME AS subDomainName, CASE WHEN coalesce(appoint_time, &#39;&#39;) = &#39;&#39; OR coalesce(appoint_time_unit, &#39;&#39;) = &#39;&#39; THEN &#39;未超SLA时限&#39; WHEN (CASE WHEN now()::timestamp > to_timestamp(finish_date, &#39;yyyy-MM-dd hh24:mi:ss&#39;) THEN EXTRACT(epoch FROM (to_timestamp(finish_date, &#39;yyyy-MM-dd hh24:mi:ss&#39;) - (to_timestamp(occur_date, &#39;yyyy-MM-dd hh24:mi:ss&#39;) + (appoint_time || &#39; &#39; || appoint_time_unit)::interval)::timestamp)) ELSE EXTRACT(epoch FROM (now()::timestamp - (to_timestamp(occur_date, &#39;yyyy-MM-dd hh24:mi:ss&#39;) + (appoint_time || &#39; &#39; || appoint_time_unit)::interval)::timestamp)) END) > 0 THEN &#39;已超SLA时限&#39; ELSE &#39;未超SLA时限&#39; END AS slaFlag FROM t_ioc_event_manage t1 LEFT JOIN T_IOC_EVENT_DOMAIN t2 ON t1.DOMAIN = t2.UUID LEFT JOIN T_IOC_EVENT_DOMAIN t3 ON t1.SUB_DOMAIN = t3.UUID WHERE t1.domain = &#39;e03915e6b1574b62b1c3f69854e6f48e&#39; AND t1.del_flag = &#39;0&#39;) SELECT * FROM (SELECT * FROM temp t1 WHERE t1.status = &#39;进行中&#39; AND t1.tenant_id = &#39;88888888&#39; ORDER BY t1.event_level ASC, t1.occur_date ASC) t1 UNION ALL SELECT * FROM (SELECT * FROM temp t2 WHERE coalesce(t2.status, &#39;&#39;) != &#39;进行中&#39; AND t2.tenant_id = &#39;88888888&#39; ORDER BY t2.occur_date DESC) t1) z SELECT * FROM (WITH temp AS (SELECT t1.*, t2.NAME AS domainName, t3.NAME AS subDomainName, CASE WHEN coalesce(appoint_time, &#39;&#39;) = &#39;&#39; OR coalesce(appoint_time_unit, &#39;&#39;) = &#39;&#39; THEN &#39;未超SLA时限&#39; WHEN (CASE WHEN now()::timestamp > to_timestamp(finish_date, &#39;yyyy-MM-dd hh24:mi:ss&#39;) THEN EXTRACT(epoch FROM (to_timestamp(finish_date, &#39;yyyy-MM-dd hh24:mi:ss&#39;) - (to_timestamp(occur_date, &#39;yyyy-MM-dd hh24:mi:ss&#39;) + (appoint_time || &#39; &#39; || appoint_time_unit)::interval)::timestamp)) ELSE EXTRACT(epoch FROM (now()::timestamp - (to_timestamp(occur_date, &#39;yyyy-MM-dd hh24:mi:ss&#39;) + (appoint_time || &#39; &#39; || appoint_time_unit)::interval)::timestamp)) END) > 0 THEN &#39;已超SLA时限&#39; ELSE &#39;未超SLA时限&#39; END AS slaFlag FROM t_ioc_event_manage t1 LEFT JOIN T_IOC_EVENT_DOMAIN t2 ON t1.DOMAIN = t2.UUID LEFT JOIN T_IOC_EVENT_DOMAIN t3 ON t1.SUB_DOMAIN = t3.UUID WHERE t1.domain = &#39;e03915e6b1574b62b1c3f69854e6f48e&#39; AND t1.del_flag = &#39;0&#39;) SELECT * FROM (SELECT * FROM temp t1 WHERE t1.status = &#39;进行中&#39; AND t1.tenant_id = &#39;88888888&#39; ORDER BY t1.event_level ASC, t1.occur_date ASC) t1 UNION ALL SELECT * FROM (SELECT * FROM temp t2 WHERE coalesce(t2.status, &#39;&#39;) != &#39;进行中&#39; AND t2.tenant_id = &#39;88888888&#39; ORDER BY t2.occur_date DESC) t1) z WHERE 1 = 1 AND z.event_type <> &#39;信息安全规范&#39; AND z.deal_user_no LIKE &#39;%&#39; || &#39;zhoujian&#39; || &#39;%&#39; OR z.create_user LIKE &#39;%&#39; || &#39;zhoujian&#39; || &#39;%&#39; 帮我把如上两条SQL查询的数据拼接为一条SQL
07-29
SELECT COUNT(*) AS total FROM (WITH temp AS (SELECT t1.*, t2.NAME AS domainName, t3.NAME AS subDomainName, CASE WHEN coalesce(appoint_time, &#39;&#39;) = &#39;&#39; OR coalesce(appoint_time_unit, &#39;&#39;) = &#39;&#39; THEN &#39;未超SLA时限&#39; WHEN (CASE WHEN now()::timestamp > to_timestamp(finish_date, &#39;yyyy-MM-dd hh24:mi:ss&#39;) THEN EXTRACT(epoch FROM (to_timestamp(finish_date, &#39;yyyy-MM-dd hh24:mi:ss&#39;) - (to_timestamp(occur_date, &#39;yyyy-MM-dd hh24:mi:ss&#39;) + (appoint_time || &#39; &#39; || appoint_time_unit)::interval)::timestamp)) ELSE EXTRACT(epoch FROM (now()::timestamp - (to_timestamp(occur_date, &#39;yyyy-MM-dd hh24:mi:ss&#39;) + (appoint_time || &#39; &#39; || appoint_time_unit)::interval)::timestamp)) END) > 0 THEN &#39;已超SLA时限&#39; ELSE &#39;未超SLA时限&#39; END AS slaFlag FROM t_ioc_event_manage t1 LEFT JOIN T_IOC_EVENT_DOMAIN t2 ON t1.DOMAIN = t2.UUID LEFT JOIN T_IOC_EVENT_DOMAIN t3 ON t1.SUB_DOMAIN = t3.UUID WHERE t1.domain = &#39;e03915e6b1574b62b1c3f69854e6f48e&#39; AND t1.del_flag = &#39;0&#39;) SELECT * FROM (SELECT * FROM temp t1 WHERE t1.status = &#39;进行中&#39; AND t1.tenant_id = &#39;88888888&#39; ORDER BY t1.event_level ASC, t1.occur_date ASC) t1 UNION ALL SELECT * FROM (SELECT * FROM temp t2 WHERE coalesce(t2.status, &#39;&#39;) != &#39;进行中&#39; AND t2.tenant_id = &#39;88888888&#39; ORDER BY t2.occur_date DESC) t1) z WHERE 1 = 1 AND z.event_type <> &#39;信息安全规范&#39; AND z.deal_user_no LIKE &#39;%&#39; || &#39;zhoujian&#39; || &#39;%&#39; OR z.create_user LIKE &#39;%&#39; || &#39;zhoujian&#39; || &#39;%&#39; 帮我把上面的sql语句中WHERE前与where后的数据拼接起来
07-29
data: {"code": 0, "is_long_text": false, "is_longphoto": true, "keywords": ["Sean Solo", "Hongdae Guy", "Malaysia Visit", "Kuala Lumpur"], "labels": [{"labelType": "l2_labels", "labelName": "Celebrity", "labelAlias": "Celebrity", "labelId": "17aca187083a0303bf2e3ae293991cca"}, {"labelType": "l2_labels", "labelName": "Sean Solo", "labelAlias": "Sean Solo", "labelId": "b94a5fa8c816d072644d2332618c3e9d"}, {"labelType": "l2_labels", "labelName": "Hongdae Guy", "labelAlias": "Hongdae Guy", "labelId": "b1776d972d5f0cfd3ef0adc0dc56ac14"}, {"labelType": "l2_labels", "labelName": "Malaysia Visit", "labelAlias": "Malaysia Visit", "labelId": "5d191baf9b6c09345a8782ab4d52d100"}, {"labelType": "l2_labels", "labelName": "Kuala Lumpur", "labelAlias": "Kuala Lumpur", "labelId": "0b52c720e218f809fe6aea56d201f15c"}], "combineEntityList": [{"type": "schedule", "subtype": "", "detail": "{\"content\": \"Sean Solo fan meet-up and content shooting\", \"time\": \"2025-07-24T12:00:00\", \"start_time\": \"2025-07-24T12:00:00\", \"end_time\": \"2025-07-24T13:00:00\", \"location\": \"Sunway area\", \"period\": \"\", \"reminder\": \"\", \"note\": \"\"}"}], "title": "Sean Solo: Hongdae Guy in Malaysia", "title_st": 1754300624424, "sceneType": ["Articles/Paragraphs"], "summary": "- Source: thestaronline\n- Time since posted: 4d\n- Person: Sean Solo, also known as the \"Hongdae Guy\"\n- Location mentioned: Kuala Lumpur, Malaysia\n- District mentioned: Hongdae district, Seoul\n- Date of sharing location: July 24\n- Location for content shooting: Sunway area\n- Catchphrases: \"OPEN MINDEU?\"\n- Call to action for more stories: fb.com/thestaronline\n- Hashtags: #TheStarMalaysia #News\n", "requestID": "be9db863-0ef5-48f2-8c44-4838c09addf6"}如何提取data:之后的内容
最新发布
08-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值