中点击按钮新建widget_用SwiftUI做一个Widget

e16f2223202e4065990c0cf924462e37.png

WWDC2020的Widget教学视频附带的程序,需要你有一个Developer账户,并且有注册的设备才可以运行。这里咱们搞一个乞丐版的widget例子。很简单,就是在桌面的widget上循环显示几句话,当用户点击某句话的时候会进入该句话对应的页面。

  1. 新建一个SwiftUI的iOS App,命名为HelloWidget

2. 点击HelloWidget新建一个target,在选项卡里搜索widget extension,命名为MyWidget.

3. 新建一个Swift文件,用于存放数据,命名为data.swift,勾选HelloWidget和MyWidget,这样两个Group就都可以看到Swift定义的变量/常量了。

好了,整体结构就搭起来了,现在要做的就是填入代码。

  1. 在data.swift定义一个struct
struct Lyrics: Hashable, Identifiable, Codable {
    
   let id:String {
    
      text
   }
   let text:String
   static let lyrics:[Lyrics] = [Lyrics(text:"你是我的玫瑰"), Lyrics(text:"你是我的花"), 
       Lyrics(text: "你是我的爱人"), Lyrics(text: "是我的牵挂")]
}

2. 在ContentView.swift里做一个简单的NavigationView

3. 修改MyWidget.swift

3.1 SimpleEntry改成

struct SimpleEntry: TimeLineEntry {
    
   let date: Date
   let text: Lyrics
}

3.2 把Provider.placeholder(), Provider

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Widget类中使用一个新建的.ui文件,需要完成以下几个步骤: 1. 打开Qt Creator,选择“文件”菜单下的“新建文件或项目”,在“项目”窗口中选择“Qt Widgets应用程序”,然后按照向导创建一个新的Qt项目。 2. 在Qt Creator中打开.ui文件,然后在“编辑器”中拖动需要使用的控件到窗口中。 3. 在Qt Creator中打开Widget类的头文件(通常是widget.h),在类的定义中添加一个私有成员变量,用于存储从.ui文件中载入的窗口控件。 4. 在Widget类的构造函数中,使用QUiLoader类从.ui文件中载入窗口控件,并将它们存储到Widget类的私有成员变量中。 5. 在Widget类的析构函数中,释放从.ui文件中载入的窗口控件。 下面是一个示例代码,演示了如何在Widget类中使用一个新建的.ui文件: ```cpp #include "widget.h" #include "ui_widget.h" #include <QtUiTools/QUiLoader> #include <QFile> Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); // 载入.ui文件 QUiLoader loader; QFile file(":/new/ui/MyWidget.ui"); file.open(QFile::ReadOnly); QWidget *widget = loader.load(&file, this); file.close(); // 将窗口控件存储到私有成员变量中 m_label = widget->findChild<QLabel*>("label"); m_button = widget->findChild<QPushButton*>("button"); // 将窗口控件添加到Widget类中 QVBoxLayout *layout = new QVBoxLayout(this); layout->addWidget(widget); } Widget::~Widget() { // 释放从.ui文件中载入的窗口控件 delete m_label; delete m_button; delete ui; } ``` 在这个示例代码中,我们在Widget类中添加了一个私有成员变量m_label和m_button,用于存储从.ui文件中载入的窗口控件。在Widget类的构造函数中,我们使用QUiLoader类从.ui文件中载入窗口控件,并将它们存储到m_label和m_button中。最后,我们将窗口控件添加到Widget类中,并在Widget类的析构函数中释放它们。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值