vue循环了一组按钮怎么点其中一个按钮只修改这个按钮的样式?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue循环了一组按钮怎么点其中一个按钮只修改这个按钮的样式?相关的知识,希望对你有一定的参考价值。

参考技术A 因为盒子是循环出来的,要实现循环div单独点击一个其他样式不变的效果,可以设定一个active值,默认是-1,点击就触发函数将i赋值给active从而实现当前div样式判断。

按下按钮暂停正在运行的功能

【中文标题】按下按钮暂停正在运行的功能【英文标题】:Pause a running function pressing a button 【发布时间】:2016-07-23 18:56:40 【问题描述】:

我有一个 gtk2+ 代码,其中有一个运行按钮和一个停止按钮。我希望停止按钮在特定点暂停运行功能(而不是离开它),直到再次按下运行按钮,在同一点继续。

问题在于,while 循环会阻塞与程序接口的任何交互并冻结。

void STOP(GtkWidget *widget, GObject *context_object_stop) 

  stop=1; 


void RUN(GtkWidget *widget, GObject *context_object_run) 


  GtkEntry *buffer= g_object_get_data (context_object_run, "buffer");
  GtkTextIter iter; 
  GtkTextMark *marker; 
  marker = gtk_text_buffer_get_insert(buffer);
  gtk_text_buffer_get_iter_at_mark(buffer, &iter, marker);

  stop=0;
  int i=0;

    for (i=0; i<5000000; i=i+1)
    
     while (stop==1)
     
       //here is my problem
     
     gchar * stuff = g_strdup_printf("%d""\n", i);
     gtk_text_buffer_insert(buffer, &iter, stuff, -1);
     g_free(stuff);
     while (gtk_events_pending())
     gtk_main_iteration();
     gtk_text_view_scroll_mark_onscreen(GTK_TEXT_VIEW(wins), marker);
    


对解决方案有什么想法吗?


编辑;一种不停止运行main函数的多线程方法:

  stop=0;
  int i=0;
  pthread_t th1;

    for (i=0; i<5000000; i=i+1)
    
     void *StopRun(void *arg)
     
     while (stop==1)
     
       //here is my problem
     
     
     if (stop==1)
     
     pthread_create(&th1, NULL, (void*)StopRun, NULL);
     
     gchar * stuff = g_strdup_printf("%d""\n", i);
     gtk_text_buffer_insert(buffer, &iter, stuff, -1);
     g_free(stuff);
     while (gtk_events_pending())
     gtk_main_iteration();
     gtk_text_view_scroll_mark_onscreen(GTK_TEXT_VIEW(wins), marker);
    

【问题讨论】:

你应该在不同的线程中运行你的 GUI,这样它就不会被你的循环阻塞 一般来说,大写字母用于宏/定义,而不是函数名。 @JohnDoe2991 使用不同的线程是什么意思? 如果您为每个耗时的操作(例如循环)启动一个新线程,您可以避免锁定您的应用程序。您的循环将在线程 1 中执行,而在线程 0 中,您的 GUI 仍在运行且未锁定。 here 描述了如何将线程与 boost 库一起使用的示例,如果您不知道线程是什么,那么here 是更多信息。 运行按钮上执行的进程是来自所有者还是外部线程? 【参考方案1】:

查看gtk_events_pending 的文档和示例。它说:

这可用于更新 UI 和调用超时等,同时进行一些时间密集型计算。

【讨论】:

以上是关于vue循环了一组按钮怎么点其中一个按钮只修改这个按钮的样式?的主要内容,如果未能解决你的问题,请参考以下文章

我要怎么修改网页中链接按钮按下的颜色??

vue element ui 怎么点击按钮隐藏让另外一个按钮显示

vue-router面试题

LABVIEW生产消费者循环结束问题!

jquery如何控制循环里面的层的显示与隐藏

怎么提取网页中的按钮链接。 一个投票界面,很多选项按钮。怎么能把其中一个按钮单独提出作为网址链接?