Это можно сделать с помощью функций split
, unsplit
и lapply
. Мы заменим последнее значение во втором столбце первым значением в первом столбце для каждой группы значений V3
. Функция split
берет data.frame
и превращает его в список данных.
unsplit(lapply(split(dat, dat$V3),
FUN = function(d) {d[nrow(d), 2] <- d[1,1]; d}))
V1 V2 V3
1 1 2 1
2 2 3 1
3 3 4 1
4 4 1 1
5 5 6 2
6 6 7 2
7 7 5 2
8 9 10 3
9 10 9 3
Думаю, ответ в том, что кнопки на Mac просто не поддерживают изменение цвета фона и переднего плана. Как вы видели, это не уникально для Tk.
Это сработало для меня:
self.gnuplot_bt = Button(
self.run_but_container, text="Plot with Gnuplot", font="Helvetica", command=self.gnuplot,
highlightbackground ="#8EF0F7", pady=2, relief=FLAT
)
Вы можете сделать это с помощью tkmacosx из Pypi
Установить:
для python2
pip install tkmacosx
для python3
pip3 install tkmacosx
from tkinter import *
from tkmacosx import Button
root = Tk()
B1 = Button(root, text='Mac OSX', bg='lightblue',fg='yellow', borderless=1)
B1.pack()
root.mainloop()
Он отлично работает на Mac OS X.
P.S. Информацию см. В на Pypi